問題タブ [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.
scala - Float / DoubleからBigDecimalへの暗黙の変換があるのに、Stringからではないのはなぜですか?
Double
sからsへの変換の状況はBigDecimal
Javaと比較して少し改善されていますが
とのようなもの
本当にうまく機能します、次のような暗黙の変換を行うことは合理的ではないでしょうか
このように文字列をBigDecimalsに変換できるデフォルトで利用可能ですか?
または、何かが足りないので、ScalaはJavaのすべての「問題」を、の代わりに浮動小数点値を持つコンストラクターを使用して解決しましたBigDecimal
。基本的に、Scalaではもう必要ありません。String
BigDecimal(String)
mysql - Ruby BigDecimal と MySQL の 10 進精度の不一致
Rails 3.0.3 を使用して、MySQL データベースに緯度と経度を保存しています。テーブルの作成に使用した移行の一部を次に示します (指定された精度の 10 進数値に注意してください)。
次の RSpec の例は、どこが間違っているかを示しています。
一部の計算に BigDecimal を使用すると、結果my_value
は精度の高い数値になります (移行で指定された数値よりも大きくなります)。オブジェクトをデータベースに保存し、再度取得します。
元の値とデータベース値の比較は、精度が同じではないため失敗し、同じ数値ではなくなります。
なぜこれが起こっているのか理解しています (MySQL の 10 進数の精度 != BigDecimal の精度) がmy_value
、データベースに書き込む前に BigDecimal の精度を制限して、データベースの制約を確実に尊重する方法を誰か教えてもらえますか?
ありがとう!
ruby - Ruby BigDecimal 数値を最も近い 0.05 に丸める最良の方法は何ですか?
Ruby の BigDecimal #round メソッドは、数値を最も近い整数に丸めます (そして、イライラすることに fixnum として返します)。最も近い0.05に丸めることができる組み込みの方法はありますか? 見つからない。
私が管理した最高のものは
oracle - blazedsはBigDecimalを文字列に変換します
ブレイズを使用してJavaバックエンドに接続するFlexアプリケーションがあります。リモーティングを使用して、APIを呼び出し、Oracleデータベースのテーブルで(従来のJDBCクラスを使用して)SELECTステートメントを実行します。
テーブルには2つの列があります。
私のJavaAPIは次のとおりです。
Flex側には、このリモート操作の結果イベントのハンドラーがあります。
不思議なことに、DEMAND列に対応する値は自動的に文字列に変換されます(バックエンドでは、これらがBigDecimalであることがわかるようにデバッグしました)
助言がありますか?
java - JavaBigDecimal代替ライブラリ
これは特に奇妙に思われるかもしれませんが、GCJに対していくつかの新しいコードをコンパイルする必要があります。これはJavaのBigDecimalをサポートしていません。
私が探しているのは、java.math.BigDecimalの代替です。
誰かが私を正しい方向に向けることができますか?
ありがとう!
c++ - Java の BigDecimal に相当する C++ はありますか?
10 進浮動小数点演算を実行できる C++ クラスを探しています。http://speleotrove.com/decimal/を見ると、人々が書いたが維持していないあらゆる種類のクラスへのリンクがあります。decNumber++ の内容を掘り下げると、GCC が最終的にこの機能をサポートすることを示す電子メールがいくつか届きました。(正式には ISO/IEC TR 24733 として知られています)
他の人が自分のプロジェクトで使用している float または double のドロップイン代替品として使用できるものを探しています。うまくいけばオープンソース。
ありがとう!
編集:これを使用して価格を表そうとしていることを指摘しておく必要があります。したがって、巨大な小数ではなく、正確な小数が必要です。
c - C用のBigDecimalクラスはありますか?
インターネットを見て回ったのですが、見つからないようです。
Javaにも似たようなものがありますが、Cを使用する必要があります(できればローカルで使用できるもの)。誰かアイデアはありますか?
java - JavaでランダムなBigDecimalを作成するにはどうすればよいですか?
この質問:ランダムなBigIntegerを生成する方法は、BigIntegerのRandom.nextInt(int n)と同じセマンティクスを実現する方法を説明しています。
BigDecimalとRandom.nextDouble()についても同じことをしたいと思います。
上記の質問の1つの答えは、ランダムなBigIntegerを作成し、それからランダムなスケールでBigDoubleを作成することを提案しています。非常に簡単な実験は、これが非常に悪い考えであることを示しています:)
私の直感では、このメソッドを使用するには、整数をのようなものでスケーリングする必要がありますn-log10(R)
。ここで、nは出力に必要な精度の桁数であり、RはランダムなBigIntegerです。これにより、(たとえば)1-> 10^-64および10^64-> 1となるように、正しい桁数が存在するようになります。
結果が[0,1]の範囲に収まるようにするには、スケーリング値も正しく選択する必要があります。
誰かが以前にこれを行ったことがあり、結果が正しく配布されているかどうかを知っていますか?これを達成するためのより良い方法はありますか?
編集:スケール引数の私の理解を修正してくれた@biziclopに感謝します。上記は必須ではありません。一定の倍率で目的の効果が得られます。
後で参照するために、私の(明らかに機能しているコード)は次のとおりです。
java - IBM WebSphere で実行されている予期しない例外 java.math.BigDecimal
IBM WebSphere で Java アプリケーションを実行すると、次のような例外が発生しました。
ヌルチェックが行われます。私が確認したように、java.math.BigDecimalクラスにはそのようなメソッドadd2DFPがなく、いずれも呼び出しません。多分それはIBMのJDKに固有のものです。
これに関するコメントをいただければ幸いです。
例外に関するコードの提供
インスタンスは IBM JDK 1.6 で実行されています。
ruby-on-rails - BigDecimal の有効桁数を強制する方法
mysql でスケール/有効桁数が 4 の 10 進数フィールドを定義しました (例: 10.0001 )。ActiveRecord は BigDecimal として返します。
ActiveRecord のフィールドにスケール 5 (例: 10.00001 ) を設定して保存すると、値が実質的に切り捨てられます (10.0000 として保存されます)。
これを防ぐ方法はありますか?スケールを強制する方法がある場合は、すでに BigDecimal クラスを見てきました。見つかりませんでした。BigDecimal のスケールを計算して検証エラーを返すことはできますが、それを強制するためのより適切な方法があるかどうか疑問に思います。