java四舍五入问题

请教java如何0.5精度的四舍五入呢?
例如: 1.22 -> 1

       1.55   ->     1.5

       1.76    ->     2

       1.71     ->    1.5

       0.25      ->    0.5

       0.24       ->    0  


汪汪一只猫
浏览 763回答 2
2回答

阿晨1998

你肯定知道Math.round可以用来做正常的四舍五入。所以你所谓的按0.5舍入其实可以换一种想法:就是把你的数字先乘2,再正常四舍五入,再除2。按照你的例子:1.55*2=3.1,四舍五入=3,3/2=1.5。1.76*2=3.52,四舍五入=4,4/2=2。以此类推。很多事情变通一下就很简单了~

拉莫斯之舞

//#1public double round(double in) {    double dec = in - (int)in;    double out = dec >= 0.5 ?        (int)i + ((int)((dec - 0.5) / 0.25)) * 0.5 + 0.5 :        (int)i + ((int)(dec / 0.25)) * 0.5;    return out;}//Math.round()。(仅适用于对十分位做四舍五入)public double round(double in) {    double in2 = Math.round(2 * in);    return d / 2;}//#3.BigDecimal的实例方法setScale(int newScale, int roundingMode)public double round(double in) {    BigDecimal in2 = BigDecimal.valueOf(2 * in);    //0:保留0位小数    //BigDecimal.ROUND_HALF_UP:五入    return dec.setScale(0, BigDecimal.ROUND_HALF_UP).doubleValue() / 2;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java