私は(Visual Studioの時計ツールでのこぎり)があります。C++とC#の間でfloat.minが異なるのはなぜですか? C#ので
float.MinValue = -3.40282347E+38
そして、C++で:
std::numeric_limits<float>::min() = 1.17549435e-038
をなぜ値が同じではありませんか?そして、私は-3.40282347E+38
(C#値)をC++でどうやって得ることができますか?
私は(Visual Studioの時計ツールでのこぎり)があります。C++とC#の間でfloat.minが異なるのはなぜですか? C#ので
float.MinValue = -3.40282347E+38
そして、C++で:
std::numeric_limits<float>::min() = 1.17549435e-038
をなぜ値が同じではありませんか?そして、私は-3.40282347E+38
(C#値)をC++でどうやって得ることができますか?
あなたはnumeric_limits::lowest
を探しています。そこに述べたように:
は数値タイプT、 によって最小有限値の表現を返し、有限値xは、他の有限値y Y < Xが存在しないようにします。これは、浮動小数点型の の場合は
std::numeric_limits<T>::min()
とは異なります。
あなたが表示している2つの値は、2つの異なるものです。最初のもの-3.40282347E + 38は、の大きなマイナスの値です。これはフロートとして表現できる最小の値です。 2番目のものは、1.17549435e-038で、で、値は負ではありませんです。それは表現できる0より大きい最小の数です。
あなたはその文書を読んでいますか? 'std :: numeric_limits :: lowest()'に出くわしましたか? –
StoryTeller
最小値と最小有限値(つまり、表現できる最小の正の値)を比較していると思います。 – juharr
1つは負の最大値で、もう1つは正の最小値です。彼らはどちらも「最小限」ですが、違った感覚です。 – molbdnilo