JAVA 四捨六入

2021-08-20 10:06:33 字數 2464 閱讀 5382

規則:

四捨六入五考慮,

五後非零就進一,

五後皆零看奇偶,

五前為偶應捨去,

五前為奇要進一。

為了避免四捨五入規則造成的結果偏高,誤差偏大的現象出現,一般採用四捨六入五留雙規則。

// 1.當尾數小於或等於4時,直接將尾數捨去

system.out.println("10.2731: " + new bigdecimal("10.2731").setscale(2, bigdecimal.round_half_even)); // 10.2731: 10.27

system.out.println("18.5049: " + new bigdecimal("18.5049").setscale(2, bigdecimal.round_half_even)); // 18.5049: 18.50

system.out.println("16.4005: " + new bigdecimal("16.4005").setscale(2, bigdecimal.round_half_even)); // 16.4005: 16.40

system.out.println("27.1829: " + new bigdecimal("27.1829").setscale(2, bigdecimal.round_half_even)); // 27.1829: 27.18

// 2.當尾數大於或等於6時將尾數捨去向前一位進製

system.out.println("16.7777: " + new bigdecimal("16.7777").setscale(2, bigdecimal.round_half_even)); // 16.7777: 16.78

system.out.println("10.29501: " + new bigdecimal("10.29501").setscale(2, bigdecimal.round_half_even)); // 10.29501: 10.30

system.out.println("21.0191: " + new bigdecimal("21.0191").setscale(2, bigdecimal.round_half_even)); // 21.0191: 21.02

// 3.當尾數為5,而尾數後面的數字均為0時,應看尾數「5」的前一位:若前一位數字此時為奇數,就應向前進一位;若前一位數字此時為偶數,則應將尾數捨去。數字「0」在此時應被視為偶數。

system.out.println("12.6450: " + new bigdecimal("12.6450").setscale(2, bigdecimal.round_half_even)); // 12.6450: 12.64

system.out.println("18.2750: " + new bigdecimal("18.2750").setscale(2, bigdecimal.round_half_even)); // 18.2750: 18.28

system.out.println("12.7350: " + new bigdecimal("12.7350").setscale(2, bigdecimal.round_half_even)); // 12.7350: 12.74

system.out.println("21.845000: " + new bigdecimal("21.845000").setscale(2, bigdecimal.round_half_even)); // 21.845000: 21.84

// 4.當尾數為5,而尾數「5」的後面還有任何不是0的數字時,無論前一位在此時為奇數還是偶數,也無論「5」後面不為0的數字在哪一位上,都應向前進一位。

system.out.println("12.73507: " + new bigdecimal("12.73507").setscale(2, bigdecimal.round_half_even)); // 12.73507: 12.74

system.out.println("21.84502: " + new bigdecimal("21.84502").setscale(2, bigdecimal.round_half_even)); // 21.84502: 21.85

system.out.println("12.64501: " + new bigdecimal("12.64501").setscale(2, bigdecimal.round_half_even)); // 12.64501: 12.65

system.out.println("18.27509: " + new bigdecimal("18.27509").setscale(2, bigdecimal.round_half_even)); // 18.27509: 18.28

system.out.println("38.305000001: " + new bigdecimal("38.305000001").setscale(2, bigdecimal.round_half_even)); // 38.305000001: 38.31

qt的四捨五入 Qt(C )四捨五入

qt現在是四捨六入五成雙,要想四捨五入得自己想辦法,實現如下 include include double c1 3.435 double c2 3.445 double c3 3.4351 double c4 3.4451 double c5 3.445 qdebug qdebug qdebug ...

mysql 金額 四捨五入 mysql四捨五入

雲資料庫 mysql 雲資料庫 rds for mysql 是穩定可靠 可彈性伸縮的雲資料庫服務。通過雲資料庫能夠讓您幾分鐘內完成資料庫部署。雲端完全託管,讓您專注於應用程式開發,無需為資料庫運維煩惱 低至 0.24 小時起,買1年83折 雲資料庫mysql 雲資料庫 rds for mysql 是...

c 四捨五入

在處理一些資料時,我們希望能用 四捨五入 法實現,但是c 採用的是 四捨六入五成雙 的方法,如下面的例子,就是用 四捨六入五成雙 得到的結果 double d1 math.round 1.25,1 1.2double d2 math.round 1.24,1 1.2double d3 math.ro...