2024-04-24 03:54:26 发布
网友
a = 2.3
b = a*100
print b
输出:230.0
230.0
print 2.3*100
输出:229.99999999999997
229.99999999999997
双精度乘法和浮点乘法是不同的。它是?在
对上述行为有何解释?在
我假设您使用旧的python2是因为您的print语句。当我运行您给出的代码时,对于两个print语句,我得到的结果是相同的:
print
Python 2.7.10 (default, Jul 14 2015, 19:46:27) >>> a = 2.3 >>> b = a*100 >>> print b 230.0 >>> print 2.3*100 230.0
我怀疑你在使用交互式python。这是从浮点转换为字符串的一个功能:
这说明了str(使用print)和{}(交互式python使用)之间的区别。在
str
快速的谷歌搜索给了我this.
基本上,浮点数用位(0-1)表示,类似于我们知道的用0-9表示的数字。很多数字都不能用这种方式精确地表示,就像我们不能精确地表示十进制的1/3(常规的0-9)。在
首先,Python只有一个浮点数类型,即float;没有double类型。在
现在,我不知道为什么,但是你的问题似乎归结到使用print。在
>>> 2.3*100 229.99999999999997 >>> print 2.3*100 230.0
那是Python2.7.10。有趣的是,这在3.5.1中没有出现:
我假设您使用旧的python2是因为您的
print
语句。当我运行您给出的代码时,对于两个print
语句,我得到的结果是相同的:我怀疑你在使用交互式python。这是从浮点转换为字符串的一个功能:
^{pr2}$这说明了}(交互式python使用)之间的区别。在
str
(使用print
)和{快速的谷歌搜索给了我this.
基本上,浮点数用位(0-1)表示,类似于我们知道的用0-9表示的数字。很多数字都不能用这种方式精确地表示,就像我们不能精确地表示十进制的1/3(常规的0-9)。在
首先,Python只有一个浮点数类型,即float;没有double类型。在
现在,我不知道为什么,但是你的问题似乎归结到使用
print
。在那是Python2.7.10。有趣的是,这在3.5.1中没有出现:
^{pr2}$相关问题 更多 >
编程相关推荐