問題タブ [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.
ruby-on-rails-3 - Rails 3 浮動小数点の丸めエラー
Ruby 1.8.7 を実行しています。
(1.005 * 100).ラウンド結果: 100
(1.006 * 100).round 結果: 101
100.5.ラウンド結果: 101
(1.005 * 100) 結果: 100.5
ここで何が起こっているのですか?誰かが最新バージョンのルビーでこれを試してもらえますか? ありがとう!
google-chrome - ChromeでのSVG線形グラデーションの丸め誤差?
最近、Chrome で SVG 線形グラデーションをレンダリングする際に問題が発生しています。以下の SVG を見てください。
この html を Chrome にロードした後 (私のバージョンは 23.0.1271.64 です)、ピークで線形グラデーションの 2px のエラーを明確に確認するのは非常に簡単です。これは、左側の線分に緑色を示しています。IE 9 と最新の Firefox の両方で、svg は正しくレンダリングされます。おそらくChromeかWebKitのバグだと思います。回避策を知っている人はいますか?ありがとう!
c - c統合プログラムの丸め誤差
累乗nのさまざまな値と定数aの関数の積分を見つけるプログラムを作成しています。私のプログラムは正しく機能しているようですが、結果に小さな丸め誤差が発生し、その理由がわかりません。私の友人も同じプログラムを作成していて、彼の結果は私のものとは少し異なるため、エラーが発生していることを知っています。電卓で積分を行うと、彼の結果は間違いなく彼に近い値になります。以下は私の結果とa=2とn=1の彼の結果です。
彼の結果:0.189070
私の結果:0.189053
iveは、私が考えることができるほとんどすべてを調べてキャストしようとしましたが、それでも、どこからエラーが発生したかを理解できません。:p
私のプログラム:
javascript - Google Apps Script の変数から数値を追加すると、おかしくなる
CSV から引き出した数値を追加すると、次のログファイルが取得されます。
これがログです。奇妙な丸めエラーが発生する3番目まではうまくいきます。
なぜこうなった?
よろしく、リエル
c++ - std :: cbrtの丸め誤差?
標準ライブラリのgcc実装のバグとして以下を報告すべきかしら。
すべての符号なし整数について、整数の実際の平方根とi
比較すると、変換は常に良好な結果をもたらします。int(std::sqrt(i))
私たちが同じことをするなら、そうではありstd::cbrt
ません:
それは欠陥として報告されるべきだと思いますか?
ruby - Ruby の丸め誤差に問題がある
私の人生では、 my:メソッドが「インポートされたディナープレートアイテム」に等しいはずのときになぜgenerate_receipt
返されるのか理解できません。配列が実際に正しい値を返すことを確認するために、RSpec テストを作成しました。54.9
54.65
なぜ54.9
代わりに戻ってくるの54.65
ですか?この切り上げはどこで発生していますか? 正しい値を返すにはどうすればよいですか? 私は困惑しています。
ruby - OS X 上の Ruby での奇妙な出力動作
Rubyで書かれた簡単なプログラムがあります。コードは次のとおりです。
Mountain Lion を搭載した MacBook Air で実行しています。私のRubyのバージョンは次のとおりです。
私が見ている奇妙な動作は次のとおりです。
ここで j を 1.13 に変更すると、次の結果が得られます (簡潔にするために出力の一部を削除しています)。
ここで何が起こっているのですか?最初は、値が j に格納される方法と関係があり、1.13 には特別な属性があるのではないかと考えていました。しかし、j を 1.13 から開始すると、その理論が覆されました。私が本当に得ているのは、これが一貫していないように見えるということです。言い換えれば、奇数の「0000000000」がどこで機能するかは、いくぶん恣意的に思えます (そうではないと確信していますが)。
さらに悪いことに、「j < 2」を「j < 5」に変更すると、さらに奇妙な動作になります。
これをグーグルで試してみましたが、正直なところ、どこから始めればよいかわかりません。to_d で奇妙な動作が見られるスレッドをいくつか見つけましたが、特に私の質問に答えるものは何もありません。さらに、何が起こっているのかを完全に理解するには、Ruby について十分な知識がありません。精度と Ruby が数値を格納する方法に問題があるに違いありませんが、どこを見ればよいかわかりません。
正しい方向へのナッジは大歓迎です!ありがとう!
ruby - Ruby Time の丸め誤差
編集: サブ秒が浮動小数点数ではなく整数として表されることが timev.h に表示されますか?
IEEE 754 浮動小数点値の実装に関連する丸め誤差を知っていたとしても、これには非常に驚いています。
通常、コンマの後の 8 桁目または 10 桁目で精度エラーが報告されますが、その理由はよくわかります。しかし、この場合、私の値の最後の有効桁数が影響を受け、他のよく知られている精度のケースよりも重大なエラーのように見えます。さらに、これは Time クラスの一部であり、プログラムで修正する方法がわかりません。報告されたその他の丸めフロート エラーは、別のクラスを使用することで修正される場合がありますが、この場合、使用する興味深いクラスは見当たりません。
私の環境:
編集: それで、これについての 2 つの質問: それはバグですか? Time クラスでそのような精度が必要な場合、この副作用をどのように処理しますか? アイデアや回避策はありますか?
java - コンソールと JDBC での小数点以下の切り捨て/丸めの違い
10 進数の精度で double 値をデータベース テーブルに挿入する際に問題が発生しました。MS SQL Server バージョン 10.0.4000 を使用しています。以下は、小数点以下 4 桁の 10 進数列を含むサンプル テーブルです。
MSSQL コンソールから値「36.78675」を挿入する36.7868
と、フィールドが小数点以下 4 桁のみであるため、四捨五入されます。これで問題ありません。
しかし、Java コード (MS SQL JDBC ドライバー) を介して (準備されたステートメントを使用して) 同等の挿入を実行すると、データはテーブルに格納されます36.7867
。のような値がある場合36.786750001
、コンソールと JDBC の両方が に丸められ36.7868
ます。私が使用する Java オブジェクトは double です。double 値で setDouble() を呼び出しています。ここでは、データ型を自動的に選択します。しかし、オブジェクトとデータ型を取る別の JDBC メソッドがあります。これを使用して、DECIMAL と FLOAT 型でテストしました。すべてが同じ結果を出しています。jdbc ドライバーも I-net に変更しました。同じ結果もあります。
丸めがドライバーによって異なる理由を知っている人はいますか? コンソールのように動作させる設定はありますか?
fortran - 数値を任意の高精度で計算する方法は?
ガウス定数 を計算する簡単な fortran プログラムを書きました。
4回の反復後の結果は0.83462684167407308です。とにかく、算術幾何平均法を使用してより良い結果を得るには? 人々は円周率やオイラー定数などの数の桁数をどのように計算するのでしょうか? 各無理数には特定のアルゴリズムがありますか?