問題タブ [rounding]

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 投票する
21 に答える
713820 参照

sql - SQL Server で小数点以下を切り捨てる (丸めない)

四捨五入せずに SQL で余分な小数点以下を切り捨てるか削除する最良の方法を決定しようとしています。例えば:

これは自動的に に丸め@valueられ123.46、ほとんどの場合に適しています。ただし、このプロジェクトでは、それは必要ありません。不要な小数点以下を切り捨てる簡単な方法はありますか? left()関数を使用して 10 進数に戻すことができることはわかっています。他の方法はありますか?

0 投票する
20 に答える
248111 参照

python - round() が正しく丸められていないようです

round()関数のドキュメントには、数値を渡し、小数点以下の位置を丸めると記載されています。したがって、これ行う必要があります。

しかし、実際には、古き良き浮動小数点の奇妙さが忍び寄り、次のようになります。

UI のために、表示する必要があります5.6。インターネットを調べてみると、これが Python の実装に依存しているというドキュメントがいくつか見つかりました。残念ながら、これは私の Windows 開発マシンと私が試した各 Linux サーバーの両方で発生します。こちらもご覧ください

独自のラウンド ライブラリを作成する以外に、これを回避する方法はありますか?

0 投票する
13 に答える
32953 参照

excel - MSAccessでの丸め

VBA Accessで丸める最良の方法は何ですか?

私の現在の方法はExcelの方法を利用しています

しかし、私はExcelに依存しない手段を探しています。

0 投票する
37 に答える
1913107 参照

java - Javaで数値を小数点以下n桁に丸める方法

私が望むのは、double を半減法を使用して丸める文字列に変換する方法です。つまり、丸められる小数が 5 の場合、常に次の数値に切り上げられます。これは、ほとんどの人がほとんどの状況で期待する丸めの標準的な方法です。

また、有効数字のみを表示したいと思います。つまり、末尾のゼロがあってはなりません。

String.formatこれを行う1つの方法は、次の方法を使用することです。

戻り値:

これは素晴らしいことですが、重要でない場合でも、常に小数点以下 5 桁の数値が表示されます。

戻り値:

別の方法は、次を使用することDecimalFormatterです。

戻り値:

ただし、ご覧のとおり、これは半偶数丸めを使用しています。つまり、前の桁が偶数の場合は切り捨てられます。私が欲しいのはこれです:

Javaでこれを達成する最良の方法は何ですか?

0 投票する
14 に答える
362912 参照

perl - Perlで浮動小数点数をどのように丸めますか?

10進数(浮動小数点)を最も近い整数に丸めるにはどうすればよいですか?

例えば

0 投票する
13 に答える
185834 参照

java - Java Rounding Double の問題を解決する方法

減算が何らかの問題を引き起こし、結果の値が間違っているようです。

78.75 = 787.5 * 10.0/100d

708.75 = 787.5 - 78.75

877.8499999999999 = 1586.6 - 708.75

結果の期待値は 877.85 になります。

正確な計算を確実にするために何をすべきですか?

0 投票する
18 に答える
41138 参照

algorithm - 任意の有効桁数への丸め

任意の数値 (整数 > 0 だけでなく) を有効数字 N 桁に丸めるにはどうすればよいですか?

たとえば、有効数字 3 桁に丸めたい場合は、次のような式を探しています。

1,239,451 を返し、1,240,000 を返します

12.1257 と 12.1 を返します

.0681 とリターン .0681

5 して 5 を返す

当然のことながら、アルゴリズムは 3 の N のみを処理するようにハードコーディングされるべきではありませんが、それは出発点になります。

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

.net - == 演算子を使用して 2 つの丸められた浮動小数点数を比較するのは正しいですか?

または、操作が失敗する可能性はありますか?

ありがとう。

私は間違った用語を選択しました。私が本当に意味していたのは、切り捨てではなく、0 への丸めでした。

ポイントは、2 つの double の整数部分を比較する必要があり、それらを int にキャストしてから == を使用するだけですが、以前の質問の 1 つで誰かが指摘したように、これはオーバーフロー例外をスローする可能性があるということです。 double は整数に収まりません。

したがって、質問は、「== 演算子を使用して、以前に 0 に丸められた 2 つの double を比較するのは正しいですか、それとも int メソッドへのキャストに固執して、考えられる例外をキャッチする必要がありますか?」

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

javascript - JavaScript で数値を丸めるにはどうすればよいですか?

プロジェクトに取り組んでいるときに、元従業員によって作成された、基本的に次の形式でレポートを作成する JS スクリプトに出くわしました。

問題は、値が浮動小数点数 (精度が異なる)、整数、または の形式である場合があること2.20011E+17です。出力したいのは純粋な整数です。ただし、JavaScript についてはよくわかりません。これらの時々フロートを取り、それらを整数にするメソッドを書くにはどうすればよいでしょうか?

0 投票する
3 に答える
3867 参照

c# - C# での FORTRAN の丸めの一致

FORTRAN には、倍精度数を整数値に変換する関数がいくつか用意されています。切り捨て/丸めの方法が異なります。これらを使用する複雑な科学アルゴリズムを変換しています。

FORTRAN のドキュメントによると、
aint(x)は、x と 0 の間の最も近い x の整数値を返します。
anint(x)は、xに最も近い整数値を返します。ただし、途中の場合は、より大きな整数値に丸められます。
nint(x)は、x を最も近い int 値に丸める int 形式に変換します。

これらを C# で実装している人はいますか? 正解するのは難しいかもしれません。

(int)x は aint() と一致するように見えます
Convert.ToInt32(x) は上記のいずれとも一致しません。
Trunc(x) は上記のいずれとも一致しません。
Round(x) は anint または nint に一致する可能性があります。

anint と nint の違いは戻り値の型にあるようです。anint は倍精度値を返しますが、nint は整数を返します。両方が使用されます (実際のサンプル):
DOUBLE PRECISION A、B、C、D、E、F、G
... ここで設定される値 ...
F = ANINT(AB) + ANINT(CD) + ANINT(B+DE)
G = NINT(F) + 1D0;
おそらく、FORTRAN の専門家は、作成者が両方を使用することを選択した理由を明確にするのに役立つ可能性があります (意図的なものだと思います)。