C# 如何以全精度打印浮点数字
如果我有一个C# 如何以全精度打印浮点数字,c#,floating-point,number-formatting,floating-accuracy,C#,Floating Point,Number Formatting,Floating Accuracy,如果我有一个0.3的值,它不能准确地用double或float表示,我如何将它的实际值打印为字符串。像这样的程序: 用0.3作为输入打印0.3,这对我来说很奇怪,因为根据它应该是0.300000119092895078125 因此,问题是如何强制.net将float/的格式设置为double作为其实际值 R建议仅用于biginger类型。对于Double类型,使用 “G17”;对于单一类型,请使用“G9” 因此,尝试使用G9(因为float最多提供9位有效数字的精度),它会提供预期的输出 Con
0.3
的值,它不能准确地用double
或float
表示,我如何将它的实际值打印为字符串。像这样的程序:
用0.3
作为输入打印0.3
,这对我来说很奇怪,因为根据它应该是0.300000119092895078125
因此,问题是如何强制.net将float
/的格式设置为double
作为其实际值
R
建议仅用于biginger
类型。对于Double
类型,使用
“G17”;对于单一类型,请使用“G9”
因此,尝试使用G9
(因为float
最多提供9位有效数字的精度),它会提供预期的输出
Console.WriteLine({0:G9}),d);
在我的末尾,我将看到0.30000012
value“它的真实值。”——>一些大的和小的double
用100位来表示。通常17位有效数字就足够了。
using System;
class Program
{
static void Main(string[] args)
{
var line = Console.ReadLine();
var d = float.Parse(line);
Console.WriteLine("{0:R}", d);
}
}