我的代码找到一个未知数(0<;Alpha<;1),它的精度取决于另一个参数(Dm).最后,阿尔法用例如20位数字来确定,但是取决于dm,阿尔法应该一直保持到确定的(在执行期间已知=njj)位.最后,我需要在格式命令中替换NJJ,如下所示:
Njj=8;Alpha=0.0004258819580078126#我需要这个Alpha=0.00042588
打印(‘{:.njj f}’.Format(Alpha))
但这不管用!
它显示: ValueError:格式说明符缺少精度
我的代码找到一个未知数(0<;Alpha<;1),它的精度取决于另一个参数(Dm).最后,阿尔法用例如20位数字来确定,但是取决于dm,阿尔法应该一直保持到确定的(在执行期间已知=njj)位.最后,我需要在格式命令中替换NJJ,如下所示:
Njj=8;Alpha=0.0004258819580078126#我需要这个Alpha=0.00042588
打印(‘{:.njj f}’.Format(Alpha))
但这不管用!
它显示: ValueError:格式说明符缺少精度
这是一个相当好的问题.
我发现这样做效果很好:
njj= 8
alpha= 0.0004258819580078126 # I need this alpha= 0.00042588
print(f'{alpha:.{njj}f}')
这就产生了这样的结果:
0.00042588
但同时,您也可以这样做:
print(round(alpha, njj))
update:
根据@Mark下面的 comments ,与格式化的f-string
方法相比,当有尾随的零时,round()
函数生成a different number of decimal places.因此用户需要决定他们想要看到的是哪一个.