猿问

如何舍入到最接近的0.5?

我必须显示收视率,为此,我需要增加如下值:

如果数字是1.0,则应等于1;
如果数字是1.1,则应等于1;
如果数字是1.2,则应等于1;
如果数字是1.3,则应等于1.5;
如果数字是1.4,则应等于1.5
如果数字为1.5,则应等于1.5;
如果数字为1.6,则应等于1.5;
如果数字为1.7,则应等于1.5;
如果数字为1.8,则应等于2.0;
如果数字是1.9,则应等于2.0
如果数字为2.0应等于2.0
如果数字为2.1应等于2.0
依此类推...

是否有一种简单的方法来计算所需的值?


慕丝7291255
浏览 1447回答 3
3回答

aluckdog

将您的评分乘以2,然后使用舍入Math.Round(rating, MidpointRounding.AwayFromZero),然后将该值除以2。Math.Round(value * 2, MidpointRounding.AwayFromZero) / 2

蛊毒传说

乘以2,取整,然后除以2如果要最近的四分之一,请乘以4,再除以4,以此类推

收到一只叮咚

这是我编写的几种方法,它们总是可以向上或向下舍入为任何值。public static Double RoundUpToNearest(Double passednumber, Double roundto){    // 105.5 up to nearest 1 = 106    // 105.5 up to nearest 10 = 110    // 105.5 up to nearest 7 = 112    // 105.5 up to nearest 100 = 200    // 105.5 up to nearest 0.2 = 105.6    // 105.5 up to nearest 0.3 = 105.6    //if no rounto then just pass original number back    if (roundto == 0)    {        return passednumber;    }    else    {        return Math.Ceiling(passednumber / roundto) * roundto;    }}public static Double RoundDownToNearest(Double passednumber, Double roundto){    // 105.5 down to nearest 1 = 105    // 105.5 down to nearest 10 = 100    // 105.5 down to nearest 7 = 105    // 105.5 down to nearest 100 = 100    // 105.5 down to nearest 0.2 = 105.4    // 105.5 down to nearest 0.3 = 105.3    //if no rounto then just pass original number back    if (roundto == 0)    {        return passednumber;    }    else    {        return Math.Floor(passednumber / roundto) * roundto;    }}
随时随地看视频慕课网APP
我要回答