在C#中我(使用Visual Studio监视工具看到):
float.MinValue = -3.40282347E+38
在C ++中:
std::numeric_limits<float>::min() = 1.17549435e-038
为什么值不一样?如何在C ++中获得-3.40282347E+38
(C#值)?
答案 0 :(得分:17)
您正在寻找numeric_limits::lowest
。如上所述:
返回数字类型T表示的最低有限值, 也就是说,有限值x使得没有其他有限值y 其中y < X。这与
std::numeric_limits<T>::min()
不同 浮点类型。
答案 1 :(得分:4)
您展示的两个值是两个不同的东西。第一个,-3.40282347E + 38,是一个大的负值;它是可以表示为浮点数的最小值。第二个,1.17549435e-038,是微小的非负值;它是可以表示的大于0的最小数字。