我试图理解numpy如何处理float32数据类型。
下面的代码生成0.25815687
print(np.float32(0.2581568658351898).astype(str)) # 0.25815687
但是一个在线的浮点数转换器https://www.h-schmidt.net/FloatConverter/IEEE754.html给出0.2581568658351898193359375,Numpy在打印单精度浮点数时做了什么特别的事情吗?还是我遗漏了什么?Online converter result
2条答案
按热度按时间e4eetjau1#
可以使用f字符串强制打印位数
其中
:.25f
告诉解释器将值打印为25位十进制数的浮点数。bihw5rsg2#
Numpy在打印单精度浮点数时是否做了一些特殊的事情,或者我遗漏了一些事情?
0.2581568658351898不能完全编码为32位浮点数。
最接近的是
0.2581568658351898193359375
或0x1.085a46p-2
当以降低的精度打印
0.2581568658351898193359375
时,结果为0.25815687