C# 舍入科学记数法值

Der*_*rek 4 c# scientific-notation rounding

我有一个以科学计数法格式化的小双精度值。当我显示该值时,它以 1.34423E-12 格式显示,小数点后有 5 位数字。我想舍入该值,使其显示为 1.344E-12。

是否有内置方法将科学记数法值舍入为 x 位小数?

Mar*_*ner 5

使用格式字符串,例如

double d = 1.34423e-12;
string formattedValue = d.ToString("E3");
Run Code Online (Sandbox Code Playgroud)

这里的"E"意思是使用科学记数法(“E”大写,"e"想要小就用……),3代表小数点后三位。

您可以查看MSDN 上的标准数字格式字符串以查看其他选项。String.Format方法的文档还包含有关格式化值的有用信息。

编辑

如果您想要更大的灵活性,可以使用自定义数字格式字符串。使用这些,您还可以指定用于指数的位数,例如

d.ToString("0.000E0"); // -> Results in "13.344E-12" instead of "13.344E-012"
d.ToString("0.000E0000"); // -> "13.344E-0012"
Run Code Online (Sandbox Code Playgroud)