我将尝试编写一个算法,使用.Net字符串格式化器找到显示至少一位有效数字的最小精度数字。
例如:
Value Precision wanted:
----- -----------------
10 0
1 0
0.1 1
0.99 1
0.01 2
0.009 3
(不关心更多位数,仅需精确到第一位,因此0.99只需要精度为1。)
我能想到的最好解释是:
int precision = (int)Math.Abs(Math.Min(0, Math.Floor(Math.Log10(value))));
这样做很好,但我想有更加优雅的解决方案。有数学大牛可以帮忙吗?