可能重复:
从字符串中读取double值
我将我的String转换为double有一个问题,我总是得到奇怪的结果.我想转换以下字符串:
string Test = "17828.571428571";
Run Code Online (Sandbox Code Playgroud)
我这样试过(因为它通常有效):
Double _Test = Convert.ToDouble(Test);
Run Code Online (Sandbox Code Playgroud)
结果是:17828571428571(没有点,lol)
我需要它作为一个双倍,然后Math.Round(),所以我在我的例子中有17828.我的第二个想法是拆分字符串,但这真的是最好的方法吗?:S
谢谢你的帮助!
芬恩
使用 InvariantCulture
Double _Test = Convert.ToDouble(Test,CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
编辑:我相信你现在的文化是"德国" de-DE,它,用于浮点.
试过以下代码.您也可以NumberFormatInfo.InvariantInfo在转换期间使用.
string Test = "17828.571428571";
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
double d = Convert.ToDouble(Test);
double d2 = Convert.ToDouble(Test, CultureInfo.InvariantCulture);
double d3 = Convert.ToDouble(Test, NumberFormatInfo.InvariantInfo);
string Test2 = "17828,571428571"; //Notice the comma in the string
double d4 = Convert.ToDouble(Test2);
Console.WriteLine("Using comma as decimal point: "+ d4);
Run Code Online (Sandbox Code Playgroud)
输出:( 注意输出中的逗号)
Wihtout Invariant: 17828571428571
With InvariantCulture: 17828,571428571
With NumberFormatInfo.InvariantInfo: 17828,571428571
Using comma as decimal point: 17828,571428571
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
820 次 |
| 最近记录: |