問題タブ [bigdecimal]
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.
java - java.math.MathContextの使用
最近、java.math.MathContextの使用法を理解しようとしましたが、正しく理解できませんでした。での丸めに使用されますかjava.math.BigDecimal
。はいの場合、なぜそれは小数桁だけでなく仮数部分も丸めないのですか。
ANSI X3.274-1996
APIドキュメントから、仕様で指定された標準に準拠していることがわかりましたが、ANSI X3.274-1996/AM 1-2000
オンラインで読むことはできませんでした。
これについて何か考えがあれば教えてください。
programming-languages - 任意精度演算をサポートするプログラミング言語は?
任意精度の算術演算をサポートするプログラミング言語は何ですか?また、任意の桁数を出力する方法の簡単な例を挙げていただけますか?
java - BigDecimal("0") と BigDecimal.ZERO に違いはありますか?
比較または新しい変数の初期化のいずれかで、どちらを使用するかによって違いはありますか?
BigDecimal.ZERO が 1.5 の機能であることは知っているので、それは懸念事項ですが、1.5 を使用していると仮定して、問題はありますか?
ありがとう。
java - Java での金額の表現
Java で金額を表すには、BigDecimal が推奨されるベスト プラクティスであることを理解しています。あなたは何を使うのですか?代わりに使用したいより良いライブラリはありますか?
c# - 非常に大きな C# 浮動小数点数
私はいくつかの人口モデリングを行っています (楽しみのために、主に収容力と物流機能の概念で遊ぶためです)。このモデルは、複数の惑星 (現在、約 100,000 個) で動作します。人口が 1 つの惑星の収容能力に達すると、住民は近くの惑星に分岐し始めます。
問題: 100,000 以上の惑星には多くの人々が住むことができます。C# でDecimal
処理できる以上のもの。これらの数値を使用して平均やその他の処理を行っているため、浮動小数点を処理する機能が必要です (または BigInt ライブラリを使用するだけです)。
私が使用できる BigFloatingPoint クラス (または何でも) を知っている人はいますか? 今日、Google は非常に役立たずです。おそらく十分に機能するクラスを作成することもできますが、そのようなものが存在する場合は、既存のものを使用したいと思います。
c# - 小数を小数の累乗にしますか?
.net フレームワークは、Math クラスに double を強化するためのメソッドを提供します。しかし、精度要件により、10 進数を 10 乗する必要があります [ Pow(decimal a, decimal b) ]。フレームワークにはそのような機能がありますか?この種の機能を備えたライブラリを知っている人はいますか?
java - "new BigDecimal(13.3D)" は不正確な "13.3000000000000007105.." になりますか?
JavaBigDecimal
がこれほど苦痛を伴うのはどうしてでしょうか。
結果1が望まれる状況はありますか? Java 1.5 でメソッドが変更されたことは知っていますtoString()
が、これは意図した結果でしたか?
また、それBigDecimal
にはdoubleValue()
etc があることも理解していますが、私が使用しているライブラリは a を便利に使用しており、toString()
それを変更することはできません :-(
乾杯。
java - Java BigDecimal を最も近い間隔に丸める
最も近い指定された間隔 (この場合は金融市場のティック サイズ) に丸める必要がある BigDecimal 計算結果があります。
例: 価格 [ティック サイズ] -> 四捨五入された価格
ありがとう。
更新: Java/BigDecimal 用語に翻訳された schnaader のソリューション:
java - 1に近い数のかけ算の扱い方
浮動小数点数 (Java double) がたくさんありますが、そのほとんどは 1 に非常に近く、より大きな計算の一部としてそれらを乗算する必要があります。私はこれをたくさんする必要があります。
問題は、Java の double では次のような数値に問題がないことです。
次のようなものを表すことはできません。
この結果、私は急速に精度を失います (制限は、Java の double では約 1.000000000000001 のようです)。
たとえば、1.0001 は 0.0001 として格納されますが、問題は、それらを再度乗算するには 1 を加算する必要があり、この時点で精度が失われることです。
これに対処するには、BigDecimals を使用して計算 (BigDecimal に変換し、1.0 を加算してから乗算) を実行し、その後 double に変換することができますが、これがパフォーマンスに与える影響について深刻な懸念があります。
BigDecimal を使用しないでこれを行う方法を誰でも見ることができますか?
明確にするために編集: これは、勾配降下最適化アルゴリズムを採用する大規模な共同フィルター用です。多くの場合、共同フィルターは非常に小さな数値 (商品の広告をクリックする確率など、1000 分の 1 または 10000 分の 1 など) を処理するため、精度が問題になります。
コラボレーティブ フィルターは、それ以上ではないにしても、数千万のデータ ポイントでトレーニングする必要があるため、速度が問題になります。