Pos*_*Guy 1 c# string type-conversion
我正在尝试将a转换string为double.传入的字符串总是一个整数......没有小数.所以,例如"90".
double percentToCheck = Convert.ToDouble(String.Format("{0:0.00}", SomeEntity.KeyIDs.SomePercentTrigger));
Run Code Online (Sandbox Code Playgroud)
SomePercentTrigger 是我要转换的百分比.
我得到一个"字符串格式不正确"错误,所以我应该如何格式化这个字符串?我必须格式化它,因为如果我不这样做,我在转换过程中会得到同样的错误:
double percentToCheck = Convert.ToDouble(SomeEntity.KeyIDs.SomePercentTrigger);
Run Code Online (Sandbox Code Playgroud)
更新:
SomePercentTrigger简直是string如"80" ..它永远是一个整体人数太多.
更新:
你的字符串是"52.0".
必定是'.'导致这种情况的FormatException.
你可能在那里的机器上'.'是不设置作为小数点(如我住在德国使用德语区域设置.我们的小数点',')
要解决此问题,您需要使用解析字符串CultureInfo.InvariantCulture.
var value = double.Parse(myString, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
InvariantCulture应该用于围绕数据存储的应用程序部分.将双精度转换为字符串时,请确保使用它Console.WriteLine(value.ToString(CultureInfo.InvariantCulture));
我怀疑它中SomeEntity.KeyIDs.SomePercentTrigger有一些无效字符(除数字之外的东西,'.'和可选的前导' - '),例如"80%"
所以你得到了FormatException这条线
double percentToCheck = Convert.ToDouble(String.Format("{0:0.00}", SomeEntity.KeyIDs.SomePercentTrigger));
Run Code Online (Sandbox Code Playgroud)
因为{0:0.00}格式规则仅对数值有效.
你也得到了同样的例外:
double percentToCheck = Convert.ToDouble(SomeEntity.KeyIDs.SomePercentTrigger);
Run Code Online (Sandbox Code Playgroud)
因为"80%"无法转换成双倍.
你也应该
并看看实际内容SomeEntity.KeyIDs.SomePercentTrigger是什么.
| 归档时间: |
|
| 查看次数: |
9615 次 |
| 最近记录: |