Round half even for double

前端 未结 3 1787
耶瑟儿~
耶瑟儿~ 2020-12-18 08:03

I need to round to nearest 0.5 if possible.

10.4999 = 10.5

Here is quick code:

import java.text.DecimalFormat;
import java.math.RoundingMode;         


        
3条回答
  •  难免孤独
    2020-12-18 08:47

    A more general solution to @RobWatt's answer in case you ever want to round to something else:

    private static double roundTo(double v, double r) {
      return Math.round(v / r) * r;
    }
    
    System.out.println(roundTo(6.1, 0.5));     // 6.0
    System.out.println(roundTo(10.4999, 0.5)); // 10.5
    System.out.println(roundTo(1.33, 0.25));   // 1.25
    System.out.println(roundTo(1.44, 0.125));  // 1.5
    

提交回复
热议问题