タグ付けされた質問 「precision」

プログラミングの数値精度に関連する質問。分類精度については、タグ[precision-recall]を使用します。


12
floatとdoubleの違いは何ですか?
倍精度と単精度の違いについて読みました。しかし、ほとんどの場合で、floatかつdouble交換可能であると思われる、すなわち、1つまたは他のを使用すると、結果に影響を与えていないようです。これは本当ですか?floatとdoubleはいつ交換可能ですか?それらの違いは何ですか?


10
小数点以下2桁までの浮動小数点数を表示するJavaScript
数値を小数点第2位まで表示したかった。 toPrecision(2)JavaScriptで使えると思いました。 しかし、数がなら0.05、私は得る0.0500。変わらないほうがいいです。 JSbinでご覧ください。 これを行う最良の方法は何ですか? いくつかの解決策をコーディングすることを考えることができますが、このようなものが組み込まれていると思います(願っています)。

3
データベース内の数値の精度とスケールを解釈するにはどうすればよいですか?
データベースに次の列が指定されています:decimal(5,2) これはどのように解釈されますか? SQL Server Management Studioで表示される列のプロパティによると、10進数(数値の精度、数値のスケール)を意味することがわかります。 精度とスケールは、実際にはどういう意味ですか? これを5桁と小数点以下2桁の10進数として解釈するのは簡単です...すなわち12345.12 PS同僚から正しい答えを特定することはできましたが、オンラインで答えを見つけるのが非常に困難でした。したがって、今後の参考のために、ここでStackoverflowに関する質問と回答を文書化したいと思います。

11
ミリ秒の精度でDateTime.Nowを取得します。
ミリ秒の精度で実際の時間のタイムスタンプを正確に作成するにはどうすればよいですか? 16.4.2013 9:48:00:123のようなものが必要です。これは可能ですか?1秒あたり10回値をサンプリングするアプリケーションがあり、それらをグラフに表示する必要があります。

6
浮動小数点数が不正確なのはなぜですか?
一部の数値が浮動小数点数として格納されると、精度が失われるのはなぜですか? たとえば、10進数9.2は2つの10進整数(92/10)の比率として正確に表すことができ、両方とも2進数()で正確に表すことができます0b1011100/0b1010。ただし、浮動小数点数として保存された同じ比率が正確に次の値になることはありません9.2。 32-bit "single precision" float: 9.19999980926513671875 64-bit "double precision" float: 9.199999999999999289457264239899814128875732421875 そのように見える単純な数が64ビットのメモリで表現するには「大きすぎる」のはなぜでしょうか。

30
インタープリター言語で非常に大きな整数を処理するときに予期しない結果が発生する
私は合計を取得しようとしています1 + 2 + ... + 1000000000が、PHPとNode.jsで面白い結果を得ています。 PHP $sum = 0; for($i = 0; $i <= 1000000000 ; $i++) { $sum += $i; } printf("%s", number_format($sum, 0, "", "")); // 500000000067108992 Node.js var sum = 0; for (i = 0; i <= 1000000000; i++) { sum += i ; } …

3
文字列による往復変換がdoubleに対して安全でないのはなぜですか?
最近、私はdoubleをテキストにシリアル化して、それを取り戻す必要がありました。値は同等ではないようです: double d1 = 0.84551240822557006; string s = d1.ToString("R"); double d2 = double.Parse(s); bool s1 = d1 == d2; // -> s1 is False しかし、MSDN:Standard Numeric Format Stringsによると、「R」オプションは往復の安全性を保証することになっています。 往復( "R")形式指定子は、文字列に変換された数値が確実に解析されて同じ数値に戻されるようにするために使用されます なぜこれが起こったのですか?
185 c#  double  tostring  precision 

11
単精度と倍精度の浮動小数点演算の違いは何ですか?
単精度浮動小数点演算と倍精度浮動小数点演算の違いは何ですか? 私は特に、ビデオゲームコンソールに関する実用的な用語に興味があります。たとえば、ニンテンドー64には64ビットプロセッサがありますか。PS3とXbox 360は、倍精度浮動小数点演算または単精度のみを引き出すことができますが、一般に、倍精度機能が利用されます(存在する場合)。

10
C#での浮動小数点演算は一貫していますか?できますか?
いいえ、これは「なぜ(1 / 3.0)* 3!= 1なのか」という別の質問ではありません。 最近、浮動小数点についてよく読んでいます。具体的には、同じ計算が異なるアーキテクチャまたは最適化設定で異なる結果をもたらす方法です。 これは、リプレイを保存する、または(サーバークライアントではなく)ピアツーピアネットワーク化されたビデオゲームの問題であり、プログラムを実行するたびにすべてのクライアントがまったく同じ結果を生成することに依存します。浮動小数点計算は、異なるマシン(または同じマシンでも!)で劇的に異なるゲーム状態につながる可能性があります。 これは、主に一部のプロセッサ(つまりx86)が倍の拡張精度を使用するため、IEEE-754に「従う」プロセッサの間でも発生します。つまり、80ビットのレジスタを使用してすべての計算を行い、64ビットまたは32ビットに切り捨てて、計算に64ビットまたは32ビットを使用するマシンとは丸めの結果が異なります。 オンラインでこの問題のいくつかの解決策を見てきましたが、すべてC ++ではなくC ++向けです。 (Windows)、(Linux?)、または(BSD)をdouble使用して、倍精度拡張モードを無効にします(すべての計算でIEEE-754 64ビットを使用し_controlfp_sます)。_FPU_SETCWfpsetprec 常に同じコンパイラーを同じ最適化設定で実行し、すべてのユーザーが同じCPUアーキテクチャーを持っている必要があります(クロスプラットフォームの遊びはありません)。私の「コンパイラ」は実際にはJITであるため、プログラムを実行するたびに異なる最適化が行われる可能性があります、これは可能ではないと思います。 固定小数点演算を使用しfloat、double完全に回避します。decimalこの目的のためにSystem.Math機能しますが、はるかに遅くなり、ライブラリ関数のどれもそれをサポートしません。 それで、これはC#の問題でもありますか? (Monoではなく)Windowsのみをサポートする場合はどうなりますか? もしそうなら、私のプログラムを通常の倍精度で実行させる方法はありますか? そうでない場合、浮動小数点計算の一貫性を保つのに役立つライブラリはありますか?

3
0.1を複数回追加しても損失がないのはなぜですか?
私が知っている0.1小数点数が有限進数(と正確に表現できない説明)ので、double n = 0.1いくつかの精度を失うことになると、正確ではありません0.1。一方、0.5なので正確に表現できます0.5 = 1/2 = 0.1b。 0.1 3回追加しても正確には得られない0.3ので、次のコードが出力されることは理解できると述べましたfalse。 double sum = 0, d = 0.1; for (int i = 0; i < 3; i++) sum += d; System.out.println(sum == 0.3); // Prints false, OK しかし、それでは、0.1 5回追加すると正確にどのようになるのでしょう0.5か。次のコードは出力しますtrue: double sum = 0, d = 0.1; for (int i = 0; …

21
Javaでdoubleを使用して精度を保持する
public class doublePrecision { public static void main(String[] args) { double total = 0; total += 5.6; total += 5.8; System.out.println(total); } } 上記のコードは出力します: 11.399999999999 これをどのようにして印刷する(またはそれを11.4として使用できるようにする)ことができますか?


12
ダートのdoubleを小数点以下の精度でどのように丸めますか?
doubleが与えられた場合、PHPのround()関数と同様に、小数点以下の指定された精度のポイント数に丸めたいと思います。 Dartのドキュメントで見つけることができる最も近いものはdouble.toStringAsPrecision()ですが、精度の合計ポイントに小数点の前の数字が含まれているため、これは私が必要とするものではありません。 たとえば、toStringAsPrecision(3)を使用します。 0.123456789 rounds to 0.123 9.123456789 rounds to 9.12 98.123456789 rounds to 98.1 987.123456789 rounds to 987 9876.123456789 rounds to 9.88e+3 数の大きさが増すにつれて、それに応じて小数点以下の精度が失われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.