sth*_*ers 3 .net c++ floating-point
为什么double.Epsilon != std::numeric_limits<double>::min()?
在我的PC上:
double.Epsilon == 4.9406564584124654E-324并在.NET中定义
std::numeric_limits<double>::min() == 2.2250738585072014e-308
有没有办法从.NET获得2.2250738585072014e-308?
它们是不同的,因为double.Epsilon返回最小的可表示值.numeric_limits<double>::min()返回最小的标准化值.
基本上double.Epsilon相当于numeric_limits<double>::denorm_min().
在.NET中获得等效的最简单方法可能是找出最小规范化数字和使用的位模式BitConverter.Int64BitsToDouble.
| 归档时间: |
|
| 查看次数: |
3665 次 |
| 最近记录: |