C#从'double'类型获取精确的字符串形式

时间:2010-09-04 05:23:00

标签: c# string

当我在使用C#时,我有一个名为'Amount'的字段。

double amount = 10.0;

因此,在将其转换为字符串后,我希望结果如'10.0'

如果我的价值

amount = 10.00,然后在将其转换为字符串之后我想要结果'10.00'

所以,基本上我想在字符串中得到精确的结果,因为它是双重类型。 (精确)。

提前致谢。

4 个答案:

答案 0 :(得分:2)

string result = string.Format( "{0:f2}", amount );

答案 1 :(得分:1)

你问的是不可能的。 C#中的double是一个简单的64位浮点值。它不存储精度。您可以像其他答案所描述的那样用一个小数位或两个小数位打印您的值,但不能以“保留”变量的原始精度的方式打印。

答案 2 :(得分:0)

string amountString = amount.ToString("N2");

“N2”是用作.ToString()方法的第一个参数的格式字符串。

“N”代表数字,2代表小数位数。

有关字符串格式的更多信息,请点击此处: http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

答案 3 :(得分:0)

正如@Michael Petratta指出的那样,double并不带有输入的精度。如果您需要该信息,则需要自行存储。然后你可以重新构造输入字符串,例如:

static public string GetPrecisionString( double doubleValue, int precision)
{
    string FormattingString = "{0:f" + precision + "}";
    return string.Format( FormattingString, doubleValue);
}