我正在编写一个python代码,它需要将数字计算到非常多的小数位——大约14或15位。
我希望结果能平稳增长,例如:
0.123456789101997
0.123456789101998
0.123456789101999
0.123456789102000
0.123456789102001
但我似乎只把数字(当我打印出来的时候)精确到12位,所以我的数字实际上是按步骤跳的:
0.123456789101
0.123456789101
0.123456789101
0.123456789102
0.123456789102
一开始,我以为这个数字在幕后被列到了小数点后更多的地方,但刚打印出来是12位,但当我打印结果时,它们似乎也在按步骤绘制,而不是平滑地绘制。
如果有人能指点我正确的方向来解决这个问题,我会非常感激的-谢谢。
试试十进制模块怎么样?
使用
repr()
,print
使用str()
,将小数位数减少到12,以使输出用户友好。或字符串格式:
正如前面的答案所建议的,您可以通过decimal模块使用十进制数,或者在打印浮点值时交替指定15位小数,以覆盖默认的12位小数。
在许多Python实现中,普通浮点数与IEEE 754兼容(1,2)“binary64”双精度数,因此在尾数中有效地有53位。由于
53*math.log(2)/math.log(10)
大约为15.95,binary64数字支持超过15位十进制数字的精度,但不完全是16位。下面是一个您可以尝试的示例,显示了它的输出:
相关问题 更多 >
编程相关推荐