所以我在LinqPad左右徘徊,注意到一些奇怪的东西,我在Visual Studio测试代码单元测试中得到了相同的结果。double TryParse confusion
我正在玩数字数据类型的所有不同的TryParse。在此期间,我注意到double.TryParse与其余部分稍有不同。
例如:
var doubleStr = double.MinValue.ToString();
//doubleStr = -1.79769313486232E+308
double result;
var result = double.TryParse(doubleStr, out result);
//result is returning false
所有其它数据类型与MINVALUE不会有这样的烦恼:
var floatStr = float.MinValue.ToString();
//floatStr = -3.402823E+38
float result2;
float.TryParse(floatStr, out result2);
//result = True
任何身体知道为什么双是唯一一个假解析的字符串版本它的MinValue属性返回到实际的双精度值?
我不明白这是为什么不同。也许我错过了一些东西。
很确定这与使用.ToString()的指数表示法会导致它丢失一些数字有关。 –
看到doubleStr和floatStr值会很有意思。 –
MinValue作为字符串(-1.79769313486232E + 308)失败。将最后一位小数撞到1(-1.79769313486231E + 308)并成功。可能是两者之间的一些突破点。 –