为了账号安全,请及时绑定邮箱和手机立即绑定

python,js里 浮点数*整数时 内部做了什么操作?

python,js里 浮点数*整数时 内部做了什么操作?

不负相思意 2019-02-27 22:27:48
print(((10659.32 - 10000) * 100))print((10659.33 - 10000) * 100)print((10659.34 - 10000) * 100)print((10659.35 - 10000) * 100)print((10659.32 * 100 - 10000 * 100) * 1)print((10659.33 * 100 - 10000 * 100) * 1)print((10659.34 * 100 - 10000 * 100) * 1)print((10659.35 * 100 - 10000 * 100) * 1)65931.9999999999765933.065934.0000000000165935.0000000000365932.065933.065934.065935.0在我看来,前一个是浮点*整数,后一个变成了是整数相减的运算。浮点数在运算后,内部会执行类似 result = (int)result的函数,来判断是否将浮点数修改为整数吗?有点懵,求指教。谢谢
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

不会。
忠实地按照表达式提升数据类型做运算。
不要试图评价不同途径算出来的浮点数为什么不完全一致。差值小于eps的两个值你就可以认为是相等的。
另外你这个不但是浮点数的精度问题,还有打印的精度问题。记住,浮点数领域不能要求绝对相等。

查看完整回答
反对 回复 2019-03-04
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

如果不显式的指明 ,运算中不会 把浮点数转换为整数,但在计算需要时会默认把整数转换成浮点数。
浮点数不能直接用相等来比较,一般是比较差的绝对值在一个范围内算相等。

查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 539 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信