哪个格式字符串以浮动方式显示?

时间:2016-02-27 17:26:03

标签: c#

当我打电话给#34; ToString()"时,我有一个大约27个有效数字的浮点数。我得到" 6.8248054E + 26",我如何得到确切的正常值?

5 个答案:

答案 0 :(得分:8)

我知道您希望显示使用float的27位有效数字 。你可以这样做:

f.ToString("F27");

真的他们只是不匹配。考虑使用decimal来实现这种精确度:

decimal dc = 91.123142141230131231231M; //your 27-digit figure:
dc.ToString("F27");

答案 1 :(得分:6)

var number = 0.111111111100000000000000000;
string result = String.Format("{0:#,0.###########################}", number);

这将显示截至27日的所有小数位,但省略所有尾随零。因此,上述数字将显示为0.1111111111。

答案 2 :(得分:2)

试试这个。

number.ToString("F27");

答案 3 :(得分:2)

问题不在于您使用的格式。它取决于数据类型的精确度。

来自MSDN:

float的精度为7位数。另一方面,decimal的精度为28-29位。

话虽如此,如果您将值分配给decimal类型的变量,即使您在没有任何字符串格式的情况下调用ToString()方法,您也可以获得所需的内容。

dc = 6.8248054E+26M;
Console.WriteLine(dc.ToString()); // returns the whole thing including any trailing zero(s)

答案 4 :(得分:-2)

使用花车你将无法获得那么精确。

无论如何,您应该使用“F”或“N”格式化程序,它们会根据您的需要打印数字。

您可以在此处查看所有格式:Standard Numeric Format Strings