問題タブ [rounding-error]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 分割値の合計問題 (丸め誤差の処理)
私は 4 ユーロの製品を持っており、このお金を 3 つの部門に分割する必要があります。2 番目の列では、この製品の行数を取得し、部門数で割る必要があります。
私のクエリ:
しかし、値を合計すると、3,999999 になります。もちろん、何百もの行があると大きな違いが生じます... 2 つの 10 進数を定義して最後の値を四捨五入する機会はありますか? (私の結果は 1.33 1.33 1.34 になります)つまり、最後の行を調整する方法はありますか?
javascript - Javascriptで科学表記法を切り捨てる方法はありますか?
ご存知のように、これは SO に関する最もよく聞かれるトピックの 1 つであるため、丸め誤差に問題があります (実際には誤差ではありません。私はよく知っています)。私の要点を説明する代わりに、私が持っている可能性のある数と、取得できるようにしたい入力の例を示します。
まあ言ってみれば
出力
代わりに取得できるようにしたいのですが1.5e-8
、e-8かe-45かそれ以外か分からないので、10e8で掛けたり、丸めたり、10e8で割ったりすることはできません。
基本的には、その部分を取得し、指数部分1.5000002
を適用して戻すことができるようにしたいと考えています。toFixed(3)
文字列に変換して解析することはできましたが、正しくないようです...
何か案が ?
(これが多くの重複の1つであると思われる場合は、事前にお詫び申し上げますが、同様の質問は見つかりませんでした。関連するもののみです)
ガエル
php - PHPの丸め誤差
LinuxサーバーでPHP5.2.13を使用しています。数値を四捨五入すると、奇妙なエラーが発生します。これは私のテストケースです:
これは結果です:
誰もがこれを引き起こす原因を知っていますか?PHPは共有サーバーであるため、更新できません。
optimization - Haskell の有限の違い、または潜在的な最適化を無効にする方法
次の素朴な (一次) 有限差分関数を実装したいと思います。
ご存知かもしれませんが、微妙な問題があります。 とが正確に表現可能な数だけ異なることを確認する必要が(x + h)
あります。x
それ以外の場合、壊滅的なキャンセルを伴うという事実に影響されて、結果に大きなエラーが発生します(f $ x + h) - (f x)
(慎重に選択する必要がありますh
が、それは私の問題ではありません)。
C または C++ では、この問題は次のように解決できます。
volatile
修飾子は変数に関連する最適化を無効にするためtemp
、「賢い」コンパイラはこれらの 2 行を最適化しないことが保証されています。
これを解決する方法を知るには、まだ十分な Haskell を知りません。私はそれを恐れています
Haskell (または Haskell が使用するバックエンド) によって最適化されます。ここに相当するものを取得するにはどうすればよいですvolatile
か (怠惰を犠牲にすることなく可能であれば)? GHC固有の回答は気にしません。
c++ - 0.0 を通過するときの浮動小数点数の減算エラー
次のプログラム:
次の出力が生成されます。
0.2 から 0.2 を引くときにエラーが発生する原因を誰か教えてもらえますか? これは丸め誤差ですか、それとも何か他のものですか? 最も重要なのは、このエラーを回避するにはどうすればよいですか?
編集: 5.55112e-17 がゼロに非常に近いことを考えると、結論は心配しないことのようです (その情報については @therefromhere に感謝します)。
c# - C#コードを使用して10進数をSQLサーバーテーブルに挿入できません
SQL Server テーブルに 10 進値を挿入できません。
私がやろうとしていることは、これらのコード行を通して自明です:
データベースに挿入される値は、小数点以下が取り除かれます。具体的には、fileSizeInMBRounded が 11.73 の場合、データベースに挿入される値は 11,00 です。
私を助けてください
期待して感謝
c++ - C++ の丸め誤差
重複の可能性:
10 進数を 2 進数で正確に表現できないのはなぜですか?
言語 c++ 配列を宣言していて、その中に数値 (double 型) を保存しています。次に、配列内の 2 つの要素それぞれの違いを比較し始めます。例えば
だから私は次のことをするとき
条件が偽になる!!
デバッグ後、0.05 が 0.0499......993 として配列に保存されていることがわかりました。ケースは 0.10 と 0.15 で似ています。
どうすればこの問題を克服できますか?
floating-point - 浮動小数点数 (丸め) 誤差の影響を減らす
いくつかの幾何学的アルゴリズムを実装していますが、浮動小数点数の計算エラーの影響が大きいことがわかりました。この種の影響を減らすためのガイドラインはありますか?
アルゴリズムには多くの部分が含まれており、非常に複雑です。例の 1 つは、線とスプライン (一連のベジエ曲線) の間の交差を計算することです。線の位置がベジエの終点に近い場合、結果が不安定になります。
ありがとう
r - R の丸めを防止する
R が丸められないようにするにはどうすればよいですか?
例えば、
私はそこで多くの情報を失っています。私は signif() を試しましたが、私が望むことをしていないようです。
前もって感謝します!
(これは、私の学生が、1 秒あたりの数で 1,000 兆まで数えるのにどれくらいの時間がかかるかを判断しようとした結果として思いつきました)