問題タブ [floating-point]

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

c++ - std::signaling_nan の使い方は?

SO ( Using NaN in C++ )に関する別の質問を見た後、私はstd::numeric_limits<double>::signaling_NaN().

signalling_NaN を取得して例外をスローすることができませんでした。おそらくシグナルを送ることで本当にシグナルを意味すると思ったので、SIGFPEをキャッチしようとしましたが、違います...

これが私のコードです:

numeric_limits<double>::has_signaling_NaNtrue と評価されるため、私のシステムに実装されています。

何か案は?

ms Visual Studio .net 2003 の C++ コンパイラを使用しています。家に帰ったら、別のものでテストしたいと思います。

ありがとう!

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 に答える
7780 参照

sql - SQL float 列に値を挿入すると、奇妙な結果が生成される

私はレガシー ASP アプリケーションに取り組んでいます。値 (40.33) を SQL Server 2000 の float 型のフィールドに挿入しようとしています。アプリケーションで (いくつかのログを介して) 見ることができるすべての場所は、ストアド プロシージャに 40.33 を送信しています。呼び出し中にデータベースに対して SQL プロファイラーを実行すると、トレースに表示される値は 4.033000183105469e+001 です。

余分なゴミはどこから来るのですか (183105469)?

40 または 40.25 を渡すと、余分なものがないのはなぜですか?

これは、フロートを使用することの奇妙な副作用の 1 つにすぎませんか? 私が何かを書いているとき、私は通常、money や decimal などを使用するので、float データ型にはあまり慣れていません。

0 投票する
5 に答える
512 参照

floating-point - C を使用する: 浮動小数点のコンポーネントのサイズを決定するにはどうすればよいですか?

アーキテクチャに依存しない方法で浮動小数点数のサイズ (ビット単位) と範囲を見つける方法についての提案を探しています。コードは、さまざまなフラグを使用してさまざまなプラットフォーム (AIX、Linux、HPUX、VMS、おそらく Windoze) でビルドできるため、結果は異なるはずです。符号は、私は 1 ビットしか見ていませんが、指数と仮数のサイズをどのように測定するのですか?

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

java - すべてのフロートを正確にダブルとして表現できますか?

変数のすべての可能な値をfloat変数で正確に表すことができdoubleますか?

つまり、すべての可能な値に対してX、次のことが成功します。

私の疑いは、例外がないか、例外がある場合はエッジケース(+/-無限大やNaNなど)の場合のみであるということです。

編集:質問の元の言い回しは紛らわしいものでした(2つの方法で述べられています。1つは「いいえ」と答えられ、もう1つは同じ答えに対して「はい」と答えられます)。質問のタイトルと一致するように言い換えました。

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

.net - float を integer に変換するときの .NET バグ?

確認してください: この小さな .NET コンソール プログラムは興味深い結果をもたらします... 2 つの異なる方法で浮動小数点数を整数に変換する方法に注目してください。

「Cast」と「Convert」の出力は同じになると思いますが、そうではありません...出力は次のとおりです。

ここで.NETが異なる値を返す理由を知っている人はいますか?

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

c++ - 実数が double で正確に表現できる場合に true を返す C++ 関数を作成するにはどうすればよいですか?

実数が double で正確に表現できる場合に true を返す C++ 関数を作成するにはどうすればよいですか?

簡単なテスト:

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

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

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

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

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

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

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

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

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

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

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

floating-point - 浮動小数点の丸めの検出

私はJavaを使用しており、「double」データ型を参照しています。短くするために、コードでdoubleとして読み取った標準入力からいくつかの値を読み取っています(BigIntegerのようなものを使用したいのですが、現在は不可能です)。

ユーザーからdouble値を取得することを期待していますが、次のように入力する場合があります。99999999999999999999999999999.9999999999これはdoubleの正確な表現を超えており、1.0E27に丸められます(おそらく)。

特定の値をdoubleで正確に表すことができず、丸めが必要になるかどうかを検出する方法について、いくつかの指針を取得したいと思います(その値または他のそのようなアクションを拒否できるようにするため)。

どうもありがとうございます