提问人: 提问时间:3/25/2013 最后编辑:Melchia 更新时间:11/16/2023 访问量:201635
在 Python 中为小数点后的小数点添加零
Add zeros to a float after the decimal point in Python
问:
我正在从一个文件中读取数据,对其进行修改并将其写入另一个文件。新文件将被另一个程序读取,因此继承确切的格式至关重要
例如,我的输入文件上的一个数字是:
1.000000
我的脚本对列应用了一些数学运算,应该返回
2.000000
但目前返回的是
2.0
例如,我将如何编写浮点数作为文件?my_float = 2.0
my_float = 2.00000
答:
将其格式化为小数点后 6 位:
format(value, '.6f')
演示:
>>> format(2.0, '.6f')
'2.000000'
format()
函数按照给出的格式化说明将值转换为字符串。
评论
format(5.55555, '.4f')
使用 format() 命令的答案如上所述,但如果您正在处理需要表示精确值的浮点数,则可能需要查看 Decimal 标准库对象。您可以在其上下文类中设置精度和舍入,但默认情况下,它将保留您放入其中的零数:
>>> import decimal
>>> x = decimal.Decimal('2.0000')
>>> x
Decimal('2.0000')
>>> print x
2.0000
>>> print "{0} is a great number.".format(x)
2.0000 is a great number.
评论
我尝试了很多方法,但没有一种方式符合我想要的方式,直到最后,这对我有用:
foo = 56
print(format(foo, '.1f'))
print(format(foo, '.2f'))
print(format(foo, '.3f'))
print(format(foo, '.5f'))
output:
56.0
56.00
56.000
56.00000
这意味着 的第二个参数采用您必须达到的小数位。请记住,返回一个字符串。format
format
从 Python 3.6 开始,也可以进行 f 字符串格式化。这看起来像:
f"{value:.6f}"
例:
> print(f"{2.0:.6f}")
'2.000000'
我在f字符串中使用变量时遇到了问题。当所有其他方法都失败时,请阅读手册:)
“与常规字符串文字共享相同语法的结果是,替换字段中的字符不得与外部格式化字符串文字中使用的引号冲突。”
https://docs.python.org/3/reference/lexical_analysis.html#f-strings
举个例子:
my_number = 90000
zeros = '.2f'
my_string = f"{my_number:,{zeros}}"
print (my_string)
90,000.00
my_string = f'{my_number:,{zeros}}'
由于单引号,将不起作用。
包含 f 字符串和字符串的引号 F 字符串中使用的变量应为 不同。
如果对字符串变量使用单引号, 对 F 模块使用双引号,反之亦然。
评论