Double.TryParse 无法处理最大值或最小值,除非字符串

Double.TryParse Cannot Handle Max or Min value Unless String

提问人:Timothy C. Quinn 提问时间:11/9/2023 更新时间:11/9/2023 访问量:24

问:

我正在为 .Net's,在边缘条件测试期间,我发现当它是 Double 时,它的最大值 Double 存在问题,但当它是 .例如:Double.TryParseString

Dim iMaxD As Double = gettype(Double).GetField("MaxValue").GetValue(Nothing)
print(iMaxD)
print(Double.TryParse(iMaxD, val))
print(Double.TryParse("1.7976931348623157E+308", val))
print(Double.TryParse(val, val))

应该都是真的,但我得到:

1.79769313486232E+308
False
True
False

这种行为有什么合乎逻辑的原因吗?

笔记:

  1. Visual Studio 显示该值,但打印为1.7976931348623157E+3081.79769313486232E+308
  2. 1.7976931348623151E+308也失败了,但工作正常。1.7976931348623150E+308
  3. 负片具有相同的故障模式。

我正在使用 Framework 4.8。

.NET 分析 浮点

评论


答: 暂无答案