5

可能であれば、最も近い 0.5 に丸める必要があります。

10.4999 = 10.5

クイックコードは次のとおりです。

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

public class DecimalFormat  
{  
   public static void main(String[] args)  
   {  
      DecimalFormat dFormat = new DecimalFormat("#.0");
      dFormat.setRoundingMode(RoundingMode.HALF_EVEN);

      final double test = 10.4999;

      System.out.println("Format: " + dFormat.format(test));
   }  
}  

6.10000... は 6.1 に丸められるなど、6.0 に丸める必要があるため、これは機能しません。

フィードバックをお寄せいただきありがとうございます。

4

3 に答える 3

8

他の何かに丸めたい場合の@RobWattの答えに対するより一般的な解決策:

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
于 2013-06-20T19:04:17.137 に答える