🍣
[[Bug #21814] 0.pow(2,-9999999999999999990) で意図しない値が返ってくるバグ報告
[Bug #21814] 0.pow(2,-9999999999999999990) should be zero
-
0.pow(2,-9999999999999999990)は0を返す必要があるが意図しない値が返ってくるというバグ報告- 珍しく matz が建てたバグチケット
-
Integer#powは第二引数がある場合はself.pow(other, modulo)の場合はself.pow(other) / moduloと同等の結果になる - なので提示さている計算では
0.pow(2) / -9999999999999999990 == 0 / -9999999999999999990 == 0となる - しかし、実際には
-9999999999999999990か返ってきてしまうというバグ
p 0.pow(2,-9999999999999999990)
# => -9999999999999999990
p 0.pow(2) / -9999999999999999990
# => 0
- このバグは開発版の Ruby 4.0-dev で修正済み
Discussion