https://www.freecodecamp.com/challenges/exact-change
「0.01」の値で作業しているときに計算が不正確だったため、この問題に問題がありました。 計算の戻り値が小数点以下7桁または8桁の後に間違った値になることがありました(たとえば、1.01-0.01 = 0.999999996)。
他の誰かが同様の問題を抱えていましたか?
私はなんとかそれを解決することができましたが、それでも起こるべきではないこの問題のためにそれをするのに多くの時間がかかりました...誰もがそれがなぜそうなのか分かりません。 私の意見は、jsが整数値と浮動小数点値を保存する方法によるものです...
こんにちは、@ FatKoala。 ここや他の場所
そして面白い事実:JavaScriptはfloatと整数のタイプを区別しません。 1
と1.00000
はJSで同じ数値です(ただし、これは厳密には、発生した浮動小数点精度エラーの原因ではありません)。
浮動小数点演算に関するリソース(必ずしも上記でリンクしたものとは限りません)をこのチャレンジの役立つリンクに含めることは価値があるかもしれません。これはおそらく、ユーザーがそれが引き起こす精度の問題を理解する必要がある最初のリソースだからです。
cc @ FreeCodeCamp / issue-そのようなリンクの追加に関するフィードバック(および追加するリンク)のモデレーター
ええ、これは非常に興味深いトピックであり、私見に違反する必要があります。
JavaScriptには、 number
数値データ型があり、通常は64ビット浮動小数点です(ブラウザー(正確にはJSエンジン)がそれらをどのように実装しているかを考慮して)。
これに、コミュニティ内の誰かが優れたリソースをリンクするためのヘルプが必要であるとタグ付けしましょう。 私も調べてみますが、おそらく言語の専門家から来た方がいいでしょう。
リンクをありがとう、それは役に立ちました...私がコーディングしている間に問題について本当にイライラしました...今それは理にかなっています...私はそれがどこかにリンクされるべきであるか、それらのことが起こることを以前に説明されるべきであることに同意します...
私は少し突っ込んだところ、
@dhcodesどうぞ、:wink:
最も参考になるコメント
こんにちは、@ FatKoala。 ここや他の場所
そして面白い事実:JavaScriptはfloatと整数のタイプを区別しません。
1
と1.00000
はJSで同じ数値です(ただし、これは厳密には、発生した浮動小数点精度エラーの原因ではありません)。浮動小数点演算に関するリソース(必ずしも上記でリンクしたものとは限りません)をこのチャレンジの役立つリンクに含めることは価値があるかもしれません。これはおそらく、ユーザーがそれが引き起こす精度の問題を理解する必要がある最初のリソースだからです。
cc @ FreeCodeCamp / issue-そのようなリンクの追加に関するフィードバック(および追加するリンク)のモデレーター