問題タブ [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.
python - Python 10 進数
0.5
に切り上げる予定1
です。0
代わりに切り捨てられる理由を誰か説明できますか?
java - Javaで領域を結合するときの丸めの不正確さ?
私はAreas
Javaで作業しています。
私のテスト プログラムは 3 つのランダムな三角形を描画し、それらを組み合わせて 1 つまたは複数の多角形を形成します。Areas
を.add()
まとめた後PathIterator
、エッジをトレースするために使用します。
ただし、Area
オブジェクトが適切に結合されない場合があります...最後に投稿した画像でわかるように、余分なエッジが描画されます。
この問題は、Java のクラスの丸めの不正確さが原因だと思いますArea
(テスト プログラムをデバッグするとArea
、 を使用する前にギャップが表示PathIterator
されます) が、Java が形状を結合する他の方法を提供しているとは思いません。
解決策はありますか?
コードと画像の例:
成功例:
失敗したケース:
mongodb - Group() を使用した MongoDB での二重丸めエラー
私は MongoDB を初めて使用し、いくつかの基礎を試してみましたが、これには驚きました。中心的な概念を誤解していると思いますが、ここで何が起こっているのか誰か教えてもらえますか?
公式の MongoDB C# ドライブを使用して、これらのドキュメントの 10,0000 個を「ロット」と呼ばれる db コレクションに挿入しました。
C# ドライバーで見たものを信じられなかったので、シェルでこれを試しましたが、結果は同じです。
db.lots.group({key:{"glossary.GlossDiv.title":true}, reduce:function(obj,out){out.total+=obj.glossary.GlossDiv.price;}, initial:{total:0 } }) [ { "glossary.GlossDiv.title" : "S", "合計" : 299899.99999995757 } ]
私が間違っている場合は修正してください。
r - ミリ秒の丸めに関する R の問題
R でのミリ秒の丸めに関する次の問題があるとします。時間が正しくなるようにするにはどうすればよいですか?
この URL は背景情報を提供しますが、私の問題を解決しないことに気付きました: R で strptime を呼び出すときのミリ秒のパズル。
また、この URL は問題に触れていますが、解決していません: R xts: .001 millisecond in index。
これらの場合、次のことがわかります。
URL は、これが単なる表示上の問題であることを示しているようにも見えますが"%OS3"
、オプション行を使用しないなどのステートメントを使用すると、正しい桁数が取得されないように見えることに気付きました。
私が使用しているバージョンは Windows で 32 ビット 2.15.0 ですが、これは R の他の状況でも存在するようです。
元のデータは CSV ファイル内のこれらの日時文字列であることに注意してください。文字列から正しいミリ秒時間に変換する方法を見つける必要があります。
php - 合計を分割して合計を修正し、丸め誤差に対処する
MySQL データベースを使用して PHP でコーディングされた Web アプリ。
私は、費用を分割するときに、多くの人々のさまざまな費用を計算するシステムを持っています。たとえば、人物 Aが 10 で何かを購入し、人物 B、C、および Dが費用を分割する必要があります。
したがって、システムは、人物 Aについては 10 の肯定レコードを登録し、 B、C、および Dについては 10/3 の否定レコードを登録する必要があります。
ただし、これが行われると。B、C、および Dはすべて、丸め後に -3.33 になります。もちろん、どれを合計しても 10 にはなりません。この問題を解決する最善の方法は何ですか? 最適な解決策は、わずかに大きなコストを受け取る人をランダム化することです。
考えられる解決策の 1 つは、最後の人の負債を にすることですが、たとえば 13.34 の費用を4 人10 - (A + B)
で分割すると問題が発生します。異なる部分は 3.34、3.34、3.34、および 3.32 になり、最適な分割は 3.34、3.34、3.33、3.33 になります。
十分な数の小数を使用すると、これは大量の行がある場合にのみ問題になると主張する人もいるかもしれません。しかし、経済的なシステムでは、最初からフェイルセーフシステムを備えていることが重要だと思います。スケーラブルである必要があり、わずかなエラーであっても許されません。不公平は問題ありませんが、エラーではありません。
類似問題:分割値の合計問題 (丸め誤差の処理)
excel - アカウンティング形式では、$ 0.00が表示される場合と、$-その他が表示される場合があります。
Excelにピボットテーブルがあり、アイテムの合計はゼロになります。代わりに、ゼロに非常に近い数値を取得しています(-3.63797880709171E-12)。@Tim Williamsが彼のコメントで指摘したように、これは10進数の<->2進数の浮動小数点変換の既知のアーティファクトです。
ここでの私の主な関心事は、実際には結果のフォーマットにあります。$ -
ではなく$0が表示されるアカウンティング形式を適用しようとしています$0.00
。この$ -
形式は、数値のセットを比較するときに一目でどの列が「結びつく」かを確認できるため、重要です。一部のゼロがとして表示され$0.00
、他のゼロが表示される場合、$ -
これははるかに困難です。
例えば、
3つの数式すべての結果をとして表示したいと思い$ -
ます。それを強制する方法はありますか?おそらく、ピボットテーブルの合計を最も近いペニー(つまり、100分の1)に丸める方法がありますか?
java - Math.round() が正しく動作しない
これが私のプログラムです。簡単に言えば、入力された数値を指定された小数点以下の桁数に四捨五入することになっています。つまり、4.245 を小数点以下 2 桁に丸めると、4.25 になります。ただし、常に整数に丸められるだけです...なぜですか? 私を困惑させているのは、Androidで同じコードを使用していて、問題なく動作することです
そして、これが私のAndroidクラスのスニペットです
php - 不正確な計算(四捨五入?)-PHP
編集:問題は解決しました
Counter-Strikeの一致からのいくつかの統計をPHPスクリプトに分析する一般的な評価アルゴリズムを移植しようとしています。システムの概要は、以下のリンク(ニュース投稿の下部)にあります: http ://www.hltv.org/?pageid = 242&eventid = 0
とにかく、私はすべてをPHPでセットアップしました、そして私はすべてが正しいと合理的に確信しています。計算の目的で、次のことを想定します。
これは私のコードです:
問題は、$ killRating、$ SurvivalRating、および$ roundsWithMultipleKillsRatingがPHPスクリプトで常に1を返すように見えるのに対し、自分で手動で計算した場合は異なることです。たとえば、自分で$ killRatingを計算すると、1.5789などが得られますが、PHPは「1」を返します。
この問題を解決するにはどうすればよいですか?
どうもありがとう。
c++ - 画像を回転すると Qt で歪みが発生する
Qtで画像を回転させる際にいくつかの問題に直面しています。QPainterで画像を回転するたびに、画像がどんどん歪んでいきます。これは最初のイメージです:
いくつかの反復の後、次のようになります。
これは私のコードです:
私にとって、Qt は画質を維持します。その振る舞いはまったく奇妙です。理由はありますか?