Dev*_*per 3 .net c# parsing invariantculture
我在西班牙语MS Windows Server下安装了C#应用程序.
所以这段代码的工作方式错误.
decimal? top = 80.0m;
double convertedTop = (double)decimal.Parse(top.ToString(), CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
convertedTop是80000,但它应该是80.0
您的代码效率极低.
你应该把它改成
double convertedTop = Convert.ToDouble(top);
Run Code Online (Sandbox Code Playgroud)
如果在编译时类型top是decimal或decimal?(与object或IConvertible或ValueType),你可以使用一个偶数更高效的编译时投:
double convertedTop = (double)top;
Run Code Online (Sandbox Code Playgroud)
回答这个问题,top.ToString()是文化敏感的.
你也需要通过CultureInfo.InvariantCulture那里.
Nullable<T>没有提升ToString(IFormatProvider),所以你需要明确地Value处理和处理null.
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |