問題タブ [floating-accuracy]

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

php - PHP - 浮動小数点数の精度

0.009999999999998 の結果

どうしたの?私のプログラムが奇妙な結果を報告し続けたのはなぜだろうと思いました。

PHP が期待される 0.01 を返さないのはなぜですか?

0 投票する
12 に答える
618 参照

language-agnostic - 汎用言語での実数演算?

(願わくば) ほとんどの人が知っているように、浮動小数点演算は実数演算とは異なります。それは不正確な初心者向けです。多くの数値、特に小数 (0.1、0.3) を表すことができないため、このような問題が発生します。より完全なリストはここにあります。

実数演算に近いものを組み込みでサポートする汎用言語はありますか? そうでない場合、これをサポートする優れたライブラリは何ですか?

編集:任意精度のdecimal データ型は、私が探しているものではありません。1/3sqrt(3)、 などの数値を表現できるようにしたいです1 + 2i

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

floating-point - 浮動小数点を使用した意味の損失における加算と減算

浮動小数点演算の精度とそれを回避するためのさまざまな方法 (共役、テイラー級数などを使用) について学習しているときに、よく似た 2 つの数値または大きな数値と小さな数値の減算がエラーの最大の原因として言及されています。足し算ではなく引き算だけが原因なのですか?私が見ているように、シフト中に重要なビットを失うことはありません。

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

c - gccで浮動小数点の精度を上げることは可能ですか?

広範な浮動小数点計算を行うCの一部のプログラムは、PC Linuxボックスでは正しい結果を取得しますが、セルプロセッサのSPEでは間違った結果を取得しますが、セルのPPUでは取得しません。私はgccコンパイラを使用しています。丸め方法などを増やすためのgccコンパイルオプションがあるので、単精度浮動小数点精度の計算をより正確に行うことができるのではないかと思います。SPEのパフォーマンスが大幅に低下するため、2倍に変更することはできません

ありがとう

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

c++ - 浮動小数点比較 - 異なる実行間の結果

C++/C では、2 つの浮動小数点数または倍精度数を絶対的に等しいかどうか比較できないことを知っています。なんらかの理由で、絶対等価を使用する if 条件を記述した場合、if 条件が同じデータに対してプログラムの異なる実行で同じ結果を返すことが保証されますか? それとも純粋に非決定論的であり、結果は異なる可能性がありますか?

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

c - なぜ 1.2 * 30 = 35 なのですか?

なぜこれを行うのですか:

35を返しますか?

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

c++ - C++とPythonの精度

num ^ numの最初のk桁を見つける問題を試して、C++とPythonで同じプログラムを作成しました

C ++

Python

入力

出力

C++ソリューションが正確な結果であることを確認しました。http://www.wolframalpha.com/input/?i=19423474^19423474で確認しました

Pythonで同じ精度を得るにはどうすればよいですか?

編集:私はこの精度を得るための外部ライブラリパッケージについて知っていますが、ネイティブソリューションはありますか?

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

c++ - 浮動小数点に関するいくつかの質問

数値が浮動小数点表現で一方向に表現されているかどうか、より大きなサイズの表現で同じように表現されるかどうか疑問に思っています。つまり、数値が a として特定の表現を持っている場合、それがa にキャストされたfloat場合は同じ表現になり、 aにキャストされた場合も同じになります。floatdoublelong double

私は BigInteger 実装を作成していて、渡された浮動小数点数を a を受け入れる関数に送信しlong doubleて変換しているので、疑問に思っています。それが私の次の質問につながります。明らかに、浮動小数点は常に正確な表現を持っているとは限りません。std::cout << std::fixed << someFloat;渡された数値と同じでなくても、与えられた数値と同じ数値を表現しようとするのは合理的ですか?それは私が得ることができる最も正確な表現ですか? もしそうなら、 ...

その値を抽出する最良の方法は何ですか (基数は 10 の累乗)。現時点では、それを文字列として取得し、文字列コンストラクターに渡しています。これは機能しますが、もっと良い方法があると感じずにはいられませんが、基数で割ったときに剰余を取ることは浮動小数点数では正確ではありません。

最後にuintmax_t、システム上で常に最大の浮動小数点型となる型名である に相当する浮動小数点があるのか​​、それとも がlong double常に最大になるため (たとえそれがダブル)。

ありがとう、T.

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

c - IEEE-75432ビット浮動小数点数として表現できない最小の整数を見つける

重複の可能性:
IEEE 754浮動小数点数が正確に表現できない最初の整数はどれですか?

まず、これは宿題の質問です。これをすぐに解決するためです。もちろん、私はスプーンで供給される解決策を探していません。正しい方向へのちょっとした指針かもしれません。

したがって、私のタスクは、IEEE-754浮動小数点(32ビット)として表現できない最小の正の整数を見つけることです。「5==5.00000000001」のようなものでの同等性のテストは失敗することを知っているので、すべての数値をループして、次のようにテストすると思いました。

これは失敗しました。次に、浮動小数点「結果」から整数「i」を減算しようとしました。これは、「0.000000002」の何かを達成することを期待して、失敗しました。

誰かが私に希望のブレーク条件を得るために信頼できるフローティングポイントのプロパティを指摘できますか?

--------------------以下の更新---------------

これについて助けてくれてありがとう!私はここで複数のことを学びました:

  1. 私の当初の考えは確かに正しく、実行する予定のマシン(Solaris 10、32ビット)で結果を決定しましたが、Linuxシステム(64ビットおよび32ビット)では機能しませんでした。

  2. Hans Passantが追加した変更により、プログラムは私のシステムでも機能するようになりました。ここでは、予期していなかったプラットフォームの違いがいくつか発生しているようです。

みんなありがとう!

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

floating-point - 倍精度値の演算で期待どおりの結果が得られないのはなぜですか?

2.14656

0.14656000000000002

なんてこと?