問題タブ [significant-digits]

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

.net - 小数の「有効数字」を取得する方法はありますか?

アップデート

OK、いくつかの調査の後、Jon と Hans から提供された有益な回答のおかげで、これが私がまとめることができたものです。これまでのところ、うまく機能しているように思えます。もちろん、その完全な正しさに命を賭けるつもりはありません。

私はそれをすべて徹底的にテストしていません。ただし、入力/出力の例をいくつか示します。

このコードを使用すると、次のようなことを行うことで目標を達成できると思います。

しかし、私はこれを完全にやり遂げたわけではありません。考えを共有したい人なら誰でも:それは大歓迎です!


元の質問

次のコードを書いたとします。

上記は次のように出力されます。

decimal.Parse("1.23")foradecimal.Parse("1.23000")forを使用すると、これも機能することがわかりましたb(つまり、この質問は、プログラムがユーザー入力を受け取る場合に適用されます)。

したがって、明らかにdecimal値は、私がその精度と呼ぶものを何らかの形で「認識」しています。decimalただし、それ自体を除いて、これにアクセスする方法を提供するタイプのメンバーはありませんToString

decimal2 つの値を乗算し、結果を精度の低い引数の精度にトリムしたいとします。言い換えると:

上記の出力:

私が求めているのは、21.73代わりに返されるメソッドをどのように書くことができるかということです ( 123.4M4 つの有効数字があるため)。

明確にするために、両方の引数を呼び出しToString、各文字列の有効数字を数え、この数値を使用して計算結果を丸めることができることを理解しています。可能であれば、別の方法を探しています。

(また、有効数字を扱っているほとんどのシナリオでは、おそらく型を使用する必要がないこと認識しています。しかし、最初に述べたように、型には次の情報が含まれているように見えるdecimalので、私が尋ねているのです。私が知る限り、正確ではありません。)decimaldouble

0 投票する
1 に答える
4179 参照

precision - Octaveで少なくとも20の有効数字を印刷する方法はありますか?

プログラムの結果を有効数字20桁で印刷する必要がありますが、15桁以上(フォーマット長)を印刷する方法がわかりません。これを達成する方法はありますか?

0 投票する
4 に答える
8619 参照

c# - double.Parseが小数点以下の末尾のゼロを削除しないようにしますか?

double.Parseを使用する場合、変換している文字列から末尾の(重要でない)ゼロを文字列で削除するようです。double.Parseを小数点以下の桁数に保持したいのですが。たとえば、次のコードがあります。

次に、デバッガーは次のように書き込みます

4.00を4に変換

つまり、ダブルのように見えます。Parseここで何か怪しいことをしています。PS MouseSensitivityもdouble型であるため、文字列操作を実行できません。

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

java - Java/Android で double を少なくとも 1 桁の有効数字にフォーマットする

表示するときに、すべての double 値を設定された桁数 (2 としましょう) にフォーマットするために使用している DecimalFormat オブジェクトがあります。通常は小数点以下 2 桁にフォーマットしたいのですが、少なくとも 1 桁の有効数字が常に必要です。たとえば、値が 0.2 の場合、フォーマッタは 0.20 を出力します。これは素晴らしいことです。ただし、値が 0.000034 の場合、フォーマッターは 0.00 を吐き出し、フォーマッターが 0.00003 を吐き出すことを好みます。

Objective-C の数値フォーマッタはこれを非常に簡単に行います。表示する最大桁数を 2 に設定し、有効桁数の最小数を 1 に設定するだけで、目的の出力が生成されますが、どうすればそれを行うことができますか?ジャワ?

誰でも私に提供できる助けに感謝します。

カイル

編集: 値を丸めたいので、0.000037 は 0.00004 と表示されます。

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

c++ - C++の有効数字

C ++で有効数字を含む数学を行うにはどうすればよいですか?私はこれが化学と物理学の実験からの測定データで正しく機能することを望んでいます。例:65/5 =10。不要な小数点以下の桁数を削除し、一部の数字を0に置き換える必要があります。

ありがとう!

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

php - PHPで最も近い有効数字に切り捨てる方法

PHPで最も近い有効数字に切り捨てる巧妙な方法はありますか?

それで:

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

sql-server-2005 - SQL Server の有効数字

小数点の左側に最大 5 を返し、常に右側に 3 を返したい変数があります。

現在、変数は次のように定義されています

これは常に次のようなものを返します

左の関数で問題を解決できると思いますが、私の質問は、なぜこれが起こるのかということです。定義された 10 進数の最小変数@OneThousandが 3 の場合、戻り値は 3 桁の小数点を持つべきではありませんか?

0 投票する
1 に答える
664 参照

java - BigDecimal による高度な丸めオプション

非常に大きくて正確な数値 (倍精度で処理できるよりもはるかに多くの有効桁数) を丸める必要があるプログラムを作成しており、BigDecimals を使用しています。

有効数字ではなく場所に基づいて BigDecimal を丸める方法はありますか?

つまり、1 に丸めるには 0.5 が必要で、0 に丸めるには 0.4 が必要ですが、これらは同じ有効数字であるため、BigDecimal はどちらも丸めることを拒否します。

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

r - R 凡例の値は Ne+n 形式に短縮されます

R を使用していくつかのフィンランドの林業地図を印刷しようとしています。地図はきれいに描かれていますが、凡例の一部の数字は完全な長さではなく、3e+06 の形式で示されています。

これは、凡例の行のサイズが長すぎる場合に発生するようです。これは、一部のユーザーにとっては問題になる可能性があります。

完全な数字を表示するように変更する方法を探していました。私はこれと数日間戦ってきたので、これを修正する方法についてのアイデアをいただければ幸いです。以下ソース。

0 投票する
1 に答える
2391 参照

objective-c - 有効数字での丸め

iPhone の Xcode /Objective-C で。

値が 0.00004876544 のフロートがあります。最初の有効数字の後に小数点以下 2 桁まで表示するにはどうすればよいですか?

たとえば、0.00004876544 は 0.000049 になります。