|
|
1
14
从 the MSDN documentation of System.Double.Parse :
这里,逗号(
总结一下:如果当前区域性的千位分隔符符号出现在字符串中的任何位置,它将被忽略
Int32.Parse(string) 另一方面,字符串中不允许有数千个分隔符:
这就是您的第一个示例抛出异常的原因。你可以改变这两种行为
|
|
|
2
8
第一次失败是因为
现在它的工作原理就像双版本 做 默认情况下支持数千个分隔符。它们之所以成功,可能是因为“当解析器将其视为千位分隔符时,将完全忽略”,即使逗号有时不具有千位分隔符的意义。 令人惊讶的是,即使这样也行:
在上面,d被设置为值1123.0。 |
|
|
3
6
在这种情况下,逗号将被解释为本地化的组分隔符符号,并被忽略。见 http://msdn.microsoft.com/en-us/library/fd84bdyt.aspx .
在这种情况下,您使用
这背后的原因是整数转换器没有本地化支持 默认情况下 因为本地化增加了额外的开销,并且没有理由为根本不需要与任何符号交互的解析器添加它。但是,您可以使用一些额外的参数强制解析器支持本地化:
另一方面,浮动/双重转换,
有
以支持十进制分隔符。在某些文化中,这是
|
|
4
1
在转换为double时忽略逗号。如果希望逗号生成错误,则可以使用double.parse(string,system.globalization.numberstyles)方法。 |
|
|
5
0
因为double假定逗号是一个数千分隔符,而忽略了它。Int32转换不能做到这一点。 |
|
|
6
0
同样的事情 转换.todouble :
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |