問題タブ [numeric-limits]

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

c++ - float 変数が float の制限を超えるとどうなりますか?

私は2つのことを指摘しました:

  1. std::numeric_limits<float>::max()+(a small number) 与えます: std::numeric_limits<float>::max() .

  2. std::numeric_limits<float>::max()+(a large numberのように:情報std::numeric_limits<float>::max()/3) を提供します。

この違いはなぜですか?1 または 2 は OVERFLOW になり、未定義の動作になりますか?

編集:これをテストするためのコード:

1.

2.

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

c++11 - C++ 11、範囲によって決定される整数型?

したがって、この質問が出てきました。かなり単純なコーディングを行いながら、次のことを検討してください。

上記のコードは、'sizeof(unsigned int) >= 4' を想定して期待どおりに動作しますが、一部のプラットフォームではこれが当てはまらない場合があるため、これに似たものに興味があります。

'RangeInt' はテンプレートで、'type' は MINIMUM (0x00000000) から MAXIMUM (0xFFFFFFFF) までの値の範囲を保持するのに十分な大きさの最小の整数型です。

したがって、問題は単純です。

  1. これは標準ライブラリのどこかに実装されていますか?
  2. そうでない場合、これを実装するライブラリはありますか、または std::numeric_limits に基づいて独自に構築する必要がありますか
0 投票する
1 に答える
128 参照

c++ - boost::graph カスタム ウェイト タイプ: numeric_limits は必要ですか?

ブースト グラフにカスタム エッジ プロパティ ( MyWeight) があり、ダイクストラ最短パス検索を適用したいと考えています。

私の重みのタイプは、boost::operators の助けを借りて、加算可能、減算可能、比較可能未満、比較可能です。

検索は何かから始めなければならないことを知っているので、ゼロに相当するものが必要であり、ノードが到達可能かどうかを調べるには、非常に大きな何かが必要です。

これが私がカスタムウェイトを使用する原則です。gcc 4.8.1 ではコンパイルされますが (正しく動作するようです)、gcc 4.7.3 では次のエラーが発生します (少し短縮されています)。

(MyWeight実際はテンプレートです)

私はこのメッセージを「あなたのタイプには std::numeric_limit がありません」と解釈しますが、一方、BGL にどの極値を使用するかを伝えますが、数値制限を呼び出そうとする理由がわかりません。numeric_limitsここで試す最善の方法は、カスタム データ型を認識させることだと思います。

誰かがそれを達成する方法を教えてもらえますか?

ここで最初のヒントを見つけましたが、この例ではdigitsandのようなメンバーを使用しdigits10ており、それらがどこから来たのか知りたいです。

編集

これは私のような例です。コンパイルできません。エラーについては上記を参照してください。

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

c++ - boost::multiprecision::cpp_dec_float_50 オーバーフロー チェック

浮動 (またはその場合は固定) 小数点演算に boost::multiprecision ライブラリを使用しようとしています。ただし、次の方法で潜在的なオーバーフローを検出するのに問題があります。

タイプの max() に 1 を追加しても、例外のスローがトリガーされませんか? オーバーフロー後に基になる型も確認しましたが、cpp_dec_float_inf ではなく、cpp_dec_float_finite のままです。また、dtNew の値は std::numeric_limits::max() と同じです

ここで私は完全に概念的な誤解を受けていますか? もしそうなら、boost::multiprecision::cpp_dec_float<50> のオーバーフローを防ぐ正しい方法は何でしょうか?

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

c++ - C++ クラス std::numeric_limits のフィールドとメソッド

なぜ、std::numeric_limitsC++ のテンプレート クラスではdigits(およびその他) がクラスの (static const) フィールドとして定義されているのに、min()およびmax()がメソッドであるのですか。これらのメソッドはリテラル値を返すだけなので?

前もって感謝します。

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

c++ - 負の無限大

float または double 変数に負の無限大の値を代入する方法を理解しようとしています。標準ライブラリの制限を含めて、無限表現を取得できるようです。その前にマイナス (-infinity) を追加すると、IEEE754 浮動小数点で探している値になる可能性があることを (かなり確実に) 知っています。標準 (0x7FFFFFFF は 0xFFFFFFFF になる可能性があるため) ですが、それについてはよくわかりません。私はそれが本当に専門的ではなく、実装に依存していると思います。

もちろん、負の無限大プラットフォームと実装の値を個別に取得する良い方法はありますか?それ以外の場合は、#define を使用することもできます。

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

c++ - numeric_limits または C limit マクロを使用する必要がありますか?

私は SO が初めてで、これが私の最初の質問ですが、ルールを読みました。ルールを破らないことを願っています。

私は最近プログラミングを学び始め、最初の言語として C++ を選びました。今日、私は適切な決定を下すために助けが必要なところまで来ました。私は C++ Primer Plus の第 6 版から学習していますが、これまでのところ著者は C マクロを紹介しただけで、 numeric_limitsテンプレート (少なくとも私はそれがテンプレートだと思います) について一言も言っていません。私の好奇心。

したがって、今は少し迷っています。正しく理解していれば、numeric_limitsは簡単に拡張できるため、C++ 型の制限をチェックするための最新の方法だからです。さらに、C マクロの中には、char16_t のような C++11 型の定義がありません。

私が見つけたのはその質問だけですが、役立つ回答を提供してくれましたが、残念ながら、私にとって特に興味深いものには回答していません。また、彼らは実際にはかなり古いものです。

さて、具体的な質問:

将来のコード実行速度、安全性、および有用性のニーズに基づいて (シンプルさはあまり気にしません)、これらの古い C マクロを使用する方が良い考えですか?

私の英語の間違いを許してください。それは私の母国語ではありません。

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

c++ - max_digits10 の目的と、digits10 との違いは何ですか?

max_digits10を表しているのか迷っています。そのドキュメントによると、すべての整数型で 0 です。の浮動小数点型の式は、 の式に似max_digits10ています。intdigits10