![](/img/trans.png)
[英]Cannot parse decimal number entered using non-English keyboard on Windows Phone
[英]Convert decimal under non-english Windows
我在西班牙语MS Windows Server下安装了C#应用程序。
所以这段代码的工作方式错误。
decimal? top = 80.0m;
double convertedTop = (double)decimal.Parse(top.ToString(), CultureInfo.InvariantCulture);
convertedTop是80000,但它应该是80.0
您的代码效率极低。
你应该把它改成
double convertedTop = Convert.ToDouble(top);
如果top
的编译时类型是decimal
还是decimal?
(与object
或IConvertible
或ValueType
相反),您可以使用更高效的编译时转换:
double convertedTop = (double)top;
要回答这个问题, top.ToString()
是文化敏感的。
您还需要在那里传递CultureInfo.InvariantCulture
。
Nullable<T>
不提升ToString(IFormatProvider)
,因此您需要在Value
上执行此操作并显式处理null
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.