为什么float.min在C ++和C#之间有所不同?

时间:2017-10-26 12:30:46

标签: c# c++

在C#中我(使用Visual Studio监视工具看到):

float.MinValue = -3.40282347E+38

在C ++中:

std::numeric_limits<float>::min() = 1.17549435e-038

为什么值不一样?如何在C ++中获得-3.40282347E+38(C#值)?

2 个答案:

答案 0 :(得分:17)

您正在寻找numeric_limits::lowest。如上所述:

  

返回数字类型T表示的最低有限值,   也就是说,有限值x使得没有其他有限值y   其中y < X。这与std::numeric_limits<T>::min()不同   浮点类型。

答案 1 :(得分:4)

您展示的两个值是两个不同的东西。第一个,-3.40282347E + 38,是一个大的负值;它是可以表示为浮点数的最小值。第二个,1.17549435e-038,是微小的非负值;它是可以表示的大于0的最小数字。