自定义Math.Round

时间:2017-11-07 20:22:28

标签: c# .net math rounding

我想舍入到4位小数,如果之后的任何内容高于0,则向上舍入到下一个数字。

示例:

 2.34121 ->  2.3413
50.58020 -> 50.5802
 4.49238 ->  4.4924
 0.00001 ->  0.0001

Math.Round只能从中点向上或向下舍入。

3 个答案:

答案 0 :(得分:2)

试试这个:

<com.my.package.DynamicImageView
                android:id="@+id/thumbnail"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="centerCrop"
                android:transitionName="@string/transition_image"
                tools:layout_width="200dp" />

答案 1 :(得分:1)

public static class Extension
{
    public static double Convert(this double d)
    {
        var d1 = (int)(d * 10000);
        var d2 = (int)((d * 1000) * 10);
        if ((d1 - d2) != 0)
        {
            return Math.Round(d, 4) + 0.0001;
        }

        return Math.Round(d, 4);
    }
}

然后拨打2.34121.Convert();

答案 2 :(得分:1)

在四舍五入之前添加0.00004。