我从文本框中读取了一个字符串.它包含一个用于小数分隔的逗号.
我已经NumberFormatInfo.CurrencyDecimalSeparator设置为,(逗号),但是当我将字符串转换为十进制时,Convert.ToDecimal(mystring);我获得了十进制的点单独值.
例:
decimal a=Convert.ToDecimal("1,2345"); ----> decimal is 1.2345
Run Code Online (Sandbox Code Playgroud)
我也试过了:
double a=Convert.ToDouble("1,2345");
Run Code Online (Sandbox Code Playgroud)
但是再次点到十进制
Aga*_*gat 35
这一切都与文化有关.如果你有任何其他文化而不是"美国英语"(也有良好的发展方式),你应该使用这样的东西:
var d = Convert.ToDecimal("1.2345", new CultureInfo("en-US"));
// (or 1,2345 with your local culture, for instance)
Run Code Online (Sandbox Code Playgroud)
(显然,你应该用你当地文化的文化取代"en-US" )
同样的方式,如果你想做 ToString()
d.ToString(new CultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)
小智 25
而不是取代我们可以强迫文化
var x = decimal.Parse("18,285", new NumberFormatInfo() { NumberDecimalSeparator = "," });
Run Code Online (Sandbox Code Playgroud)
它将输出18.285
| 归档时间: |
|
| 查看次数: |
99392 次 |
| 最近记录: |