我正在尝试编写一种算法来使用.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))));
这很好用,但我不禁想到有一个更优雅的解决方案。有没有数学高手可以帮帮我?