【问题标题】:Python returning inappropriate remainder (Modulo) [duplicate]Python返回不适当的余数(模)[重复]
【发布时间】:2021-12-02 06:01:10
【问题描述】:

我是 python 新手,希望有人向我解释一下:

print(9.2%4) 必须给我当 4 除以 9.2 并且代码输出为 1.1999999999999993 时的余数,这显然不是真的

但是这段代码: print(9.2/4) 给了我输出 2.3

请谁给我解释一下

【问题讨论】:

  • "9.2%4 必须在 4 除以 9.2 时给我余数" 反过来 - 当 9.2 除以 4 时给出余数。我可以在我的 Chrome 地址栏中输入9.2%4,它会显示 1.2 作为答案,这只是你得到的答案的四舍五入版本。
  • 9.模块 4 是 1.2,。由于浮点数不准确,您得到 1.1999999999999993。
  • 在 python 中的楼层除法也是//,所以9.2 // 4 == 2/ 是“真正的除法”,它将返回常规的 9.2 除以 4

标签: python modulo


【解决方案1】:

这样想。

9.2 % 4 == (8 + 1.2) % 4

上面语句的右边可以展开如下:

((8 % 4) + (1.2 %4) )

上面的内容可以简化如下:

(0 + 1.2) == 1.2 == 1.999999999

【讨论】:

  • 等一下,你能解释一下你是如何从第二步进入第三步的吗?
  • 好的 8 % 4 等于 0 和 1.2 % 4 等于 1.9999 即 1.2。
猜你喜欢
  • 2019-11-02
  • 1970-01-01
  • 2017-06-19
  • 2016-01-12
  • 2018-05-14
  • 1970-01-01
  • 2021-08-15
  • 2023-01-12
  • 2023-03-03
相关资源
最近更新 更多