問題タブ [decimal]

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.

0 投票する
2 に答える
1524 参照

decimal - 大きな数を10進数に変換するにはどうすればよいですか?

0x34363932353433373538323038353135353439

0 投票する
15 に答える
715076 参照

c# - C#で数値を小数点以下2桁に丸めるにはどうすればよいですか?

Math.Round関数を使用してこれを行いたい

0 投票する
8 に答える
29272 参照

java - ダブルの小数点以下の桁数が最大nかどうかを確認するにはどうすればよいですか?

現在、私はこの方法を持っています:

checkDecmialPlaces(649632196443.4279, 4)しかし、おそらく私が基数2の数値に基づいて基数10の計算を行うため、この方法は失敗します。

では、このチェックを正しく行うにはどうすればよいでしょうか。

double値の文字列表現を取得し、それを正規表現で確認することを考えましたが、それは奇妙に感じました。

編集: すべての答えをありがとう。私が実際にダブルを取得する場合があり、それらの場合のために私は以下を実装しました:

roundを切り捨てに変更しました。で行われた計算roundにより、不正確さが大きくなりすぎるようです。少なくとも失敗したテストケースでは。「実際の」文字列入力に到達できるかどうかを確認するために
使用する必要があると指摘された方もいらっしゃるので、次のようにしました。BigDecimal

私が得る価値は、doubleExcelファイルを読み取るApachePOIAPIから得られます。いくつかのテストを行ったところ、APIはdouble数値セルの値を返しますが、すぐに次のようにフォーマットすると正確な表現を取得できることがdoubleわかりましたDecimalFormat

これは、バイナリ形式で正確に表すことができない値に対しても機能します。

0 投票する
6 に答える
19430 参照

python - floatとdecimal.Decimalの小数点以下の桁数の問題

フロートでかなりの精度を失っているようです。

たとえば、行列を解く必要があります。

これは、テキストファイルからマトリックスをインポートするために使用するコードです。

ガウス・ザイデルを使用して解く必要があるため、x、y、zの方程式を再配置する必要があります。

これが私が方程式を再配置するために使用するコードです。bは係数の行列であり、yは答えベクトルです。

しかし、私が返す答えは小数点以下の桁数まで正確ではありません。

たとえば、上から2番目の方程式を並べ替えると、次のようになります。

私が得るものは:

これは大きな問題ではないように思われるかもしれませんが、数値を非常に高い累乗に上げると、エラーは非常に大きくなります。これを回避する方法はありますか?クラスを試しましたDecimalが、パワー(つまり)ではうまく機能しませんDecimal(x)**2

何か案は?

0 投票する
9 に答える
2274 参照

asp-classic - ASP/VBScript の「落とし穴」

Classic ASP/VBScript で記述された Web アプリケーションをサポート/強化しています。どちらも日常的に使用してから約10年になります。「落とし穴」と見なす問題に出くわしたばかりで、他の人にも同様のことを知っておく必要があるかどうか疑問に思っていました。

私の問題:
SQL テーブルの列を float から decimal に変換する必要がありました。decimal は、vbscript で実際にサポートされている (または適切にサポートされている) 型ではないことがわかりました。したがって、次のコード:

次の行で Type Mismatch エラーが発生します。

よく調べた結果、次のことがわかりました。

問題を解決します。しかし、それは明白なことのようには思えず、その行で Type Mismatch が発生した理由を理解するのにしばらく時間がかかりました.

皆さんへの私の質問は、このような他の小さな癖に出くわしたことがありますか? ASP/vbscript で気をつけなければならない「落とし穴」と思われるものは何ですか?

0 投票する
2 に答える
2180 参照

tsql - t-sql 10 進代入は値を変更します

以下の select ステートメントが 2 つの異なる値を返すのはなぜですか?

0 投票する
10 に答える
43227 参照

c++ - C++で10進値を切り捨てます

0.6000002の値を持つC++float変数を0.6000の値に切り捨てて、変数に格納する最も簡単な方法は何ですか?

0 投票する
11 に答える
110169 参照

python - Python float から Decimal への変換

Python Decimal は float からの構築をサポートしていません。最初に float を文字列に変換する必要があると想定しています。

float の標準的な文字列フォーマッタでは、有効桁数ではなく小数点以下の桁数を指定する必要があるため、これは非常に不便です。したがって、小数点以下 15 桁までの数値がある場合は、 のようにフォーマットする必要がありますDecimal("%.15f" % my_float)。これにより、10 進数の前に有効桁数がある場合、小数点以下 15 桁にゴミが表示されます ( Decimal("%.15f" % 100000.3) == Decimal('100000.300000000002910'))。

float から Decimal に変換して、ユーザーが入力した値を維持する良い方法を誰かが提案できますか? サポートできる有効桁数を制限する可能性がありますか?

0 投票する
8 に答える
18492 参照

c# - ダブルはお金に本当に不向きですか?

私は常に c# で double 型の変数はお金に適していないと言います。すべての奇妙なことが起こる可能性があります。しかし、これらの問題のいくつかを示す例を作成することはできないようです。誰かがそのような例を提供できますか?

(編集; この投稿はもともと C# というタグが付けられていました; 一部の返信は の特定の詳細に言及してdecimalいるため、 を意味しますSystem.Decimal)。

(編集 2: 私は具体的にいくつかの C# コードを求めていたので、これは言語にとらわれないだけではないと思います)

0 投票する
7 に答える
26876 参照

double - 10 進数と 2 倍速

私は、2 倍を使用するか 10 進数を使用するかの決定と常に戦っている金融アプリケーションを作成しています。

私の数学はすべて、小数点以下 5 桁までで、100,000 以下の数値で機能します。とにかく丸め誤差なしでこれらすべてを double として表すことができると感じていますが、確信が持てませんでした。

10 進数から 2 進数に切り替えて明らかに速度を向上させますが、結局のところ、ToString メソッドを使用して価格を取引所に送信し、常に値を出力するようにする必要があります。予想。(89.99000000001 の代わりに 89.99)

質問:

  1. 単純なテストが示すように、速度の利点は本当に大きいのでしょうか? (~100回)
  2. ToString からの出力が私が望むものであることを保証する方法はありますか? これは、私の番号が常に表現可能であるという事実によって保証されますか?

更新: アプリを実行する前に ~ 100 億の価格更新を処理する必要があり、明らかな保護上の理由から現在 10 進数で実装していますが、電源を入れるだけで ~3 時間かかります。 . ダブルスで安全に行う方法はありますか?