我有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);
答案 0 :(得分:3)
您描述的行为看起来很正常(虽然没有代码示例,但无法确定。)
如您所示,您的号码在小数部分中没有有效数字。注意“E + 22”,这意味着你正在处理一个非常大的数字。显示只有17位有效数字,在你到达小数点之前没有显示另外5位数字。您可以根据需要舍入到任意数量的小数位,您将看不到所显示数字的任何变化。