24 python floating-point decimal
我正在读取文件中的数据,修改它并将其写入另一个文件.新文件将被另一个程序读取,因此继续执行确切的格式化至关重要
例如,我的输入文件中的一个数字是:
1.000000
Run Code Online (Sandbox Code Playgroud)
我的脚本将一些数学应用于列并应返回
2.000000
Run Code Online (Sandbox Code Playgroud)
但目前返回的是
2.0
Run Code Online (Sandbox Code Playgroud)
我怎么会写一个浮动例如my_float = 2.0,作为my_float = 2.00000一个文件?
Mar*_*ers 53
将其格式化为6位小数:
format(value, '.6f')
Run Code Online (Sandbox Code Playgroud)
演示:
>>> format(2.0, '.6f')
'2.000000'
Run Code Online (Sandbox Code Playgroud)
该format()函数按照给定的格式化指令将值转换为字符串.
我尝试了很多方法,但都没有达到我想要的效果,直到最后,这对我有用:
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
Run Code Online (Sandbox Code Playgroud)
这意味着 的第二个参数format采用您必须达到的小数位。请记住,format返回一个字符串。
小智 6
我在 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
Run Code Online (Sandbox Code Playgroud)
my_string = f'{my_number:,{zeros}}'
由于单引号的原因,将不起作用。
包含 f 字符串的引号和 f 字符串中使用的字符串变量应该不同。
如果对字符串变量使用单引号,则对 f 模块使用双引号,反之亦然。
从 Python 3.6 开始,也可以进行f 字符串格式化。这看起来像:
f"{value:.6f}"
Run Code Online (Sandbox Code Playgroud)
例子:
> print(f"{2.0:.6f}")
'2.000000'
Run Code Online (Sandbox Code Playgroud)