C# .NET 中的 .toString(“F”) 和 .toString(“G”) 有什么区别?

What is the difference between .toString("F") and .toString("G") in C# .NET?

提问人:Notaras 提问时间:11/16/2023 更新时间:11/16/2023 访问量:53

问:

根据 .NET 文档

decimal value = 16325.62m;
string specifier;

// Use standard numeric format specifiers.
specifier = "G";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    G: 16325.62


specifier = "F";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    F: 16325.62

和 和有什么不一样?在哪些情况下,这些会产生不同的结果?"F""G"

C# ToString

评论

0赞 Dave S 11/16/2023
请参阅链接中的链接 - learn.microsoft.com/en-us/dotnet/standard/base-types/... - F = 固定,G = “结果:定点或科学记数法中更紧凑的。( = E)
3赞 jmcilhinney 11/16/2023
您无需询问我们何时可以简单地阅读相关文档。您需要做的就是单击并按 F1 转到该文档,它将提供指向有效格式说明符的文档的链接。Microsoft 已经在该文档中投入了数千个工时。使用它。ToString
0赞 Flydog57 11/16/2023
嘿,如果你要说“根据文档......”,至少指向正确的(learn.microsoft.com/en-us/dotnet/standard/base-types/......更好的是,从该页面(正确的页面)中提取引号,以便我们可以阅读这两个定义。我真的不喜欢必须点击链接来理解您的问题。必须遵循两个链接,近乎侮辱
0赞 Oliver 11/16/2023
要查看差异,请尝试以下数字: ,73m3.1415926m

答:

2赞 Amit Mohanty 11/16/2023 #1

"F" (Fixed-Point Format):此说明符使用定点表示法设置数值的格式。当您在十进制值(如 16325.62m)上使用 ToString() 时,它会保留指定的小数位数。例如,如果您使用 ,它将显示两个小数位,例如 16325.62。"F""F2"

"G" (General Format):此说明符根据值自动选择格式。对于十进制数,保留唯一标识数字所需的有效数字数,并且不会在小数点后添加尾随零。"G"

在您的示例中,当您使用十进制值 16325.62m 或 with 时,两者将产生相同的结果,因为有效位数使得它们都显示相同的输出:16325.62。"F""G"ToString()