1

我有一个字符串 10.00,我想将它转换为双 10.00。

我用 :

string str = "10.00";
double db = double.Parse(str);

我得到的结果是 10.0 而不是 10.00。

4

3 回答 3

5

和在数值上尊重当地文化设置ParseTryParse您可以通过指定一个CultureInfo对象来更改它。例如,在德国解析2.999成双精度:2999

Console.WriteLine (double.Parse ("2.999"));   // 2999 (In Germany) 

这是因为在德国,句点表示千位分隔符而不是小数点。指定不变的文化解决了这个问题:

double x = double.Parse ("2.999", CultureInfo.InvariantCulture);

调用时相同ToString()

string x = 2.9999.ToString (CultureInfo.InvariantCulture);
于 2012-12-13T21:10:59.707 回答
2

双精度不是字符串。如果要将双精度数显示为字符串,可以将其格式化为有两个小数点。

例如:

string str = "10.00";
double db = double.Parse(str);
String.Format("{0:0.00}", db); // will show 10.00
于 2012-10-02T03:02:40.040 回答
1

问题不是很清楚,但是如果您指的是将 double 更改回具有 2 个小数位精度的字符串,您可以使用:

string str = "10.00"
double db = double.parse(str);
string convertedBack = db.ToString("0.00");
于 2012-10-02T03:03:50.067 回答