我想获取数字,其中.ToString()转换总长度<= 7。例如
1. 1.23456789 - > 1.23457
2. 12345.789 - > 12345.8
3. 123456789.1234 - > 1.235E8
4. 0.00001234 - > 1.23E-8
我想使用非常快速的解决方案,因为需要处理大文件。
这段代码可以解决部分问题,但是不起作用
int power = (int)Math.Log10(f) + 1;
f = f / (float)Math.Pow(10, power);
f = (float)Math.Round(f, 5);
f = f * (float)Math.Pow(10, power);
例如
f = 7.174593E+10
四舍五入后,它变成 0.71746
(对我来说很好)
当我将它乘以10^11
时,它变成7.17459948E+10
但我预计7.71746E+10
UPD。 结果我想得到字符串,而不是数字。
最佳答案
如果您想舍入以便稍后在计算中使用,请使用 Math.Round((decimal)myDouble, 3)。
如果您不打算在计算中使用它,但需要显示它,请使用 double.ToString("F3")。
关于c# - C#中如何对 float 进行四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30974945/