Javaで私は実行します:
System.out.println(Math.log(249.0/251.0));
出力: -0.008000042667076265
C# で実行: <- 修正済み
Math.Log (x/y); \\where x, y are almost assuredly 249.0 and 251.0 respectively
出力: -0.175281838 (プログラムの後半で出力)
Google は次のように主張しています。
Log(249.0/251.0)
出力: -0.00347437439
また、MacOS も同じことを主張しています (Google と Snow Leopard の最初の違いは約 10^-8 で、無視できます。
これらの結果がすべて非常に大きく異なる理由があるのでしょうか、それとも非常に明白なものを見落としているのでしょうか? (JavaとC#の両方がベースeを使用していることを確認しました)。e のわずかな値の違いでさえ、それほど大きな違いを説明していないようです。助言がありますか?
編集:
Wolfram Alpha で検証すると、Java が正しい (または Wolfram Alpha が対数に Java Math を使用している) こと、および私の C# プログラムが正しい入力を持っていないことが示唆されているようですが、(e^ (google result) - 249/251) 私の意見ではかなり大きな 0.0044 のエラーが発生し、手元に別の問題があることを示唆しています...