所以我在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)併成功。可能是兩者之間的一些突破點。 –