亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java四舍五入問題

java四舍五入問題

汪汪一只貓 2018-09-04 18:30:33
請教java如何0.5精度的四舍五入呢?例如: 1.22 -> 1       1.55   ->     1.5       1.76    ->     2       1.71     ->    1.5       0.25      ->    0.5       0.24       ->    0  
查看完整描述

2 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

你肯定知道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。
以此類推。
很多事情變通一下就很簡單了~

查看完整回答
反對 回復 2018-09-16
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

//#1

public 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;

}


查看完整回答
反對 回復 2018-09-16
  • 2 回答
  • 0 關注
  • 815 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號