在C#中使用`E`舍入浮点数

时间:2014-11-19 06:06:47

标签: c# rounding

我有7,0975401565468943E+22

Math.Round(x, 3)返回7,0975401565468943E+22

这是正常的行为,我应该检查数字是否包含E,如果是,只使用类似ToString("N2");的内容?

代码示例:

float flo = float.Parse( " 7,0975401565468943E+22 " ); 
double flox = Math.Round(flo, 3);

1 个答案:

答案 0 :(得分:3)

您描述的行为看起来很正常(虽然没有代码示例,但无法确定。)

如您所示,您的号码在小数部分中没有有效数字。注意“E + 22”,这意味着你正在处理一个非常大的数字。显示只有17位有效数字,在你到达小数点之前没有显示另外5位数字。您可以根据需要舍入到任意数量的小数位,您将看不到所显示数字的任何变化。