問題タブ [precision]
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.
floating-point - エンジニアリングデータをどの測定単位に保存しますか?
私たちのアプリでは、現在、すべてのエンジニアリングデータをSIのデータベースに保存するという決定の遺産があります。
データベースまたは.NET数値型で十分な精度と精度が得られないリスクが生じる可能性があるのではないかと心配しています。また、浮動小数点演算のアーティファクトが表示される可能性があることも心配しています(ただし、それ自体が問題になる可能性があります)。
たとえば、ソースデータは、Psi(ポンド/平方インチ)で表された(および一部のサードパーティサービスから読み込まれた)圧力量である可能性があります。エンジニアはこの測定単位を選択します。これは、(表現される量について)科学的記数法を必要とせずに、簡単に消化され、人間が読める数値を与える傾向があるためです。
数値を「標準化」するとき、つまり、この量を独自の永続性のために変換するとき、Pa(パスカル)に変換する可能性があります。これには、数値を他の潜在的に大きな数値で乗算または除算する必要があります。
多くの場合、非常に大きい数または非常に小さい数を格納することになり、さらに悪いことに、これらの数についてさらに計算を行う可能性があります。
現在、ORACLEfloatとSystem.Doubleを使用しています。
人々はこれについてどう思いますか?
アップデート
さらなる調査により、次のF#言語(私が書いているCTP)での測定単位のサポートが明らかになりました。
F#に次のようなユーザー入力を理解させることができるようです。
また、独自の派生ユニットとユニットシステムを作成することもできます。
(ソース:msdn.com)
algorithm - 多くの浮動小数点数を合計するにはどうすればよいですか?
あらゆる種類のサイズの浮動小数点数の大きな配列があるとします。誤差が最も少なく、合計を計算する最も正しい方法は何ですか? たとえば、配列が次のようになっている場合:
次のような単純なループで左から右に合計します
小さい数値を合計すると、精度のしきい値を下回る可能性があるため、エラーがどんどん大きくなります。私の知る限り、最良の方法は、配列を並べ替えて、数値を最小から最大に加算することですが、もっと良い方法 (より速く、より正確) があるかどうか疑問に思っています。
編集:答えてくれてありがとう、Javaでdouble値を完全に合計する作業コードができました。これは、勝利した回答の Python 投稿からのストレート ポートです。ソリューションは、すべての単体テストに合格します。(これのより長いが最適化されたバージョンは、ここで利用可能ですSummarizer.java )
python - 浮動小数点の制限
私のコード:
a
浮動小数点値として表示したかったのです。
は文字列なのでa
、試しました:
私が得た結果は次のとおりです。
この問題の解決策が欲しいです。お願いします、助けてください。
私はこのチュートリアルに従っていました。
tsql - T-SQL 10 進数除算の精度
SQLServer 2005を使用して、誰もが理由を知っていますか
11.74438969709659、
しかし、分母の小数点以下の桁数を 15 に増やすと、精度の低い答えが得られます。
11.74438969をくれ
python - フロートを小数点以下2桁に制限する
13.95a
に丸めたい。
関数が期待どおりにround
機能しません。
java - "new BigDecimal(13.3D)" は不正確な "13.3000000000000007105.." になりますか?
JavaBigDecimal
がこれほど苦痛を伴うのはどうしてでしょうか。
結果1が望まれる状況はありますか? Java 1.5 でメソッドが変更されたことは知っていますtoString()
が、これは意図した結果でしたか?
また、それBigDecimal
にはdoubleValue()
etc があることも理解していますが、私が使用しているライブラリは a を便利に使用しており、toString()
それを変更することはできません :-(
乾杯。
c++ - C++でのlong doubleの精度は?
long double
特定のプラットフォームでの精度を調べる方法を知っている人はいますか? を使用した場合と同じように、10 進数で 17 桁を超えると精度が低下しているようdouble
です。double
私のプラットフォームでは 8 バイトで表されるのに対し、long double
は 12 バイトで表されるため、さらに取得することが期待されます。
あなたが尋ねる前に、これは Project Euler のためのものなので、はい、17 桁以上が必要です。:)
編集:素早い返信ありがとうございます。私のシステムで を使用して、10 進数で 18 桁しか取得できないことを確認しlong double
ました。
c# - 浮動小数点値が0に等しいかどうかを確認しても安全ですか?
通常、double型またはdecimal型の値の同等性に依存することはできませんが、0が特殊なケースであるかどうか疑問に思っています。
0.00000000000001と0.00000000000002の間の不正確さは理解できますが、0自体は何もないので、混乱させるのはかなり難しいようです。あなたが何も不正確であるならば、それはもう何もありません。
しかし、私はこのトピックについてあまり知らないので、私が言うことはありません。
それは常に真になりますか?