Coi*_*oin 31
首先,你需要知道这个数字来自哪个文化,然后:
CultureInfo culture = new CultureInfo("de"); // I'm assuming german here.
double number = Double.Parse("202.667,40", culture);
Run Code Online (Sandbox Code Playgroud)
如果要使用当前线程文化进行解析,默认情况下是当前用户设置的线程文化:
double number = Double.Parse("202.667,40", CultureInfo.CurrentCulture);
Run Code Online (Sandbox Code Playgroud)
小智 10
我想我找到了一个不需要文化的解决方案.无论文化如何,使用NumberFormatInfo都可以强制使用格式:
// This is invariant
NumberFormatInfo format = new NumberFormatInfo();
// Set the 'splitter' for thousands
format.NumberGroupSeparator = ".";
// Set the decimal seperator
format.NumberDecimalSeparator = ",";
Run Code Online (Sandbox Code Playgroud)
然后呢:
System.Diagnostics.Debug.WriteLine(double.Parse("202.667,40", format)));
Run Code Online (Sandbox Code Playgroud)
产出:
202667,4
当然,此输出(内部toString())可能因文化(!)而异.
请注意,将输入更改为"202,667.40"将导致解析错误,因此格式应与您的预期输入匹配.
希望这有助于某人..
| 归档时间: |
|
| 查看次数: |
30578 次 |
| 最近记录: |