我正在输出numpy.float32
值,并得到以下信息:
> import numpy as np
> a = np.float32(0.1)
> a, str(a), repr(a)
(0.1, '0.1', '0.1')
> '{}'.format(a)
'0.10000000149011612'
> float(a)
0.10000000149011612
我希望
'{}'.format(a)
返回'0.1'
。所以我的问题是:
为什么Python的
str.format
将numpy.float32
值强制转换为Python float
?我可以更改某些设置以使Python的
str.format
不将numpy.float32
值强制转换为Python float
吗?如果这是相关的:我正在使用Python 3.4.5和numpy 1.10.4。
最佳答案
python内部使用64位浮点数。没有办法改变这一点。与任何浮点数一样,您必须知道多少位有效。float32
最多具有8位有效数字:
print "{:.8g}".format(a)
如果要使用numpy的字符串格式,则必须显式转换为字符串:
print "{!s}".format(a)
关于python - Python格式将numpy.float32转换为Python float,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47033626/