保留三位有效数字 函数

来源:互联网 发布:nginx 重写headeer 编辑:程序博客网 时间:2024/04/30 20:10

今天做的功能需要对查询结果保留三位有效数字。首先查了一下SQL里面是否有方法。没有找到合适的,故退而求其次,找了一个函数,函数如下:

public static double foo(double d, int n)
        {
            if (d == 0.0) return 0;
            if (d > 1 || d < -1)
                n = n - (int)Math.Log10(Math.Abs(d)) - 1;
            else
                n = n + (int)Math.Log10(1.0 / Math.Abs(d));
            if (n < 0)
            {
                d = (int)(d / Math.Pow(10, 0 - n)) * Math.Pow(10, 0 - n);
                n = 0;
            }
            return Math.Round(d, n);
        }

如上代码,第一个参数为原始数据,第二个参数为需要保留的有效数字位数。

如果你看到了更好的方法(SQL直接处理)请回复。并联系:QQ1419226548

0 0
原创粉丝点击