鱼C论坛

 找回密码
 立即注册
查看: 2202|回复: 9

格式化

[复制链接]
发表于 2020-9-11 11:01:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
'{0}:{1:.2f}'.format('圆周率',3.14159)
'圆周率:3.14'
那么保留三位整数,不四舍五入要怎么弄,最好举列子讲解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-11 11:13:48 | 显示全部楼层
整数位一共就1个,你想写成 314.159 x 10-2 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-11 11:47:28 | 显示全部楼层
suchocolate 发表于 2020-9-11 11:13
整数位一共就1个,你想写成 314.159 x 10 ?

楼主的意思应该输出3.141
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-11 16:39:36 | 显示全部楼层
疾风怪盗 发表于 2020-9-11 11:47
楼主的意思应该输出3.141

对,就这意思,粗心了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-11 16:41:49 | 显示全部楼层
18798332503 发表于 2020-9-11 16:39
对,就这意思,粗心了

但是我也不知道怎么才能去掉四舍五入,等大佬回复吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-11 16:47:27 | 显示全部楼层
suchocolate 发表于 2020-9-11 11:13
整数位一共就1个,你想写成 314.159 x 10 ?

粗心了,我的意思是保留三位小数,是不是写成
'{0}:{1:.3f}'.format('圆周率', 3.14159),剩下的以此类推?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-11 16:50:19 | 显示全部楼层
18798332503 发表于 2020-9-11 16:47
粗心了,我的意思是保留三位小数,是不是写成
'{0}:{1:.3f}'.format('圆周率', 3.14159),剩下的以此类 ...

但是这样写,还是四舍五入的,你要去掉这个四舍五入,不知道怎么弄
或者换一种方式,先str()变成字符串,切片要的位数,再float()成小数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-11 17:46:22 | 显示全部楼层
from decimal import Decimal
import math

def fun(f):
    f = Decimal(f)
    r = Decimal('.001')
    return f.quantize(r, rounding='ROUND_DOWN')

def fun2(f):
    n = 3
    return math.floor(f * 10**n) / 10**n #乘以1000,向下取证,再除1000

print('{0}:{1:.3f}'.format('圆周率', fun2(3.1415926)))
直接格式化目前没有想到好的办法,只有先把浮点数处理一下,这两个函数都行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-12 08:05:08 | 显示全部楼层
挥舞乾坤 发表于 2020-9-11 17:46
直接格式化目前没有想到好的办法,只有先把浮点数处理一下,这两个函数都行

有点儿高深
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-12 10:24:54 | 显示全部楼层

没什么高深的,第一个函数用到的就是一个精确浮点数的模块,直接看python文档里有介绍,第二个就是取个巧,小数点先右移三位,取整,再移回来,或者干脆就转换成字符串来处理
def fun3(f):
    n = 3
    x, y = str(f).split('.')
    return '.'.join((x,y[:n]))

print('{0}:{1}'.format('圆周率', fun3(3.1415926)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 16:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表