Why double.TryParse(“0.0000”, out doubleValue) returns false ?

后端 未结 9 610
一个人的身影
一个人的身影 2021-02-03 20:38

I am trying to parse string \"0.0000\" with double.TryParse() but I have no idea why would it return false in this particular example. When I pass integer-like stri

9条回答
  •  囚心锁ツ
    2021-02-03 21:27

    TryParse uses the current culture by default. And if your current culture uses a decimal seperator different from ., it can't parse 0.0000 as you intend. So you need to pass in CultureInfo.InvariantCulture.

    var numberStyle = NumberStyles.AllowLeadingWhite |
                     NumberStyles.AllowTrailingWhite |
                     NumberStyles.AllowLeadingSign |
                     NumberStyles.AllowDecimalPoint |
                     NumberStyles.AllowThousands |
                     NumberStyles.AllowExponent;//Choose what you need
    double.TryParse( "0.0000", numberStyle, CultureInfo.InvariantCulture, out myVar)
    

提交回复
热议问题