bre*_*dog 5 c# vb.net rounding
很抱歉很难制定。
我需要这样舍入:
12 -> 10
152 -> 200
1538 -> 2000
25000 -> 30000
etc.
Run Code Online (Sandbox Code Playgroud)
扭曲我的头,但看不到如何做到这一点。必须适用于任意n个数字。任何人都有一个优雅的方法吗?
C#或vb.net
这个怎么样:
double num = 152;
int pow = (int)Math.Log10(num);
int factor = (int)Math.Pow(10, pow);
double temp = num / factor;
double result = Math.Round(temp) * factor;
Run Code Online (Sandbox Code Playgroud)
我认为你应该尝试这样的事情:
public int Round( int number)
{
int power = number.ToString().Length - 1;
int sz = Math.Pow(10, power);
int rounded = (int)Math.Round( number / sz );
return rounded * sz;
}
Run Code Online (Sandbox Code Playgroud)
这个想法是获取最接近的 10 次幂的大小,可以通过表示为字符串的数字的长度来获得。然后将该数字除以该次方,使其类似于 1,2,然后使用 Math.Round 方法对其进行舍入,并通过重新乘以该次方来恢复大小。
很像之前的答案...
归档时间: |
|
查看次数: |
1058 次 |
最近记录: |