格式化
'{0}:{1:.2f}'.format('圆周率',3.14159)'圆周率:3.14'
那么保留三位整数,不四舍五入要怎么弄,最好举列子讲解 整数位一共就1个,你想写成 314.159 x 10-2 ?
suchocolate 发表于 2020-9-11 11:13
整数位一共就1个,你想写成 314.159 x 10 ?
楼主的意思应该输出3.141 疾风怪盗 发表于 2020-9-11 11:47
楼主的意思应该输出3.141
对,就这意思,粗心了 18798332503 发表于 2020-9-11 16:39
对,就这意思,粗心了
{:10_284:}但是我也不知道怎么才能去掉四舍五入,等大佬回复吧 suchocolate 发表于 2020-9-11 11:13
整数位一共就1个,你想写成 314.159 x 10 ?
粗心了,我的意思是保留三位小数,是不是写成
'{0}:{1:.3f}'.format('圆周率', 3.14159),剩下的以此类推? 18798332503 发表于 2020-9-11 16:47
粗心了,我的意思是保留三位小数,是不是写成
'{0}:{1:.3f}'.format('圆周率', 3.14159),剩下的以此类 ...
但是这样写,还是四舍五入的,你要去掉这个四舍五入,不知道怎么弄
或者换一种方式,先str()变成字符串,切片要的位数,再float()成小数 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)))
直接格式化目前没有想到好的办法,只有先把浮点数处理一下,这两个函数都行 挥舞乾坤 发表于 2020-9-11 17:46
直接格式化目前没有想到好的办法,只有先把浮点数处理一下,这两个函数都行
有点儿高深{:10_245:} 18798332503 发表于 2020-9-12 08:05
有点儿高深
没什么高深的,第一个函数用到的就是一个精确浮点数的模块,直接看python文档里有介绍,第二个就是取个巧,小数点先右移三位,取整,再移回来,或者干脆就转换成字符串来处理
def fun3(f):
n = 3
x, y = str(f).split('.')
return '.'.join((x,y[:n]))
print('{0}:{1}'.format('圆周率', fun3(3.1415926)))
页:
[1]