我需要制作一个程序,将小数点后第二位四舍五入到最接近的5位,例如13.14到13.15。我到处都在寻找如何使用math.round()命令,但找不到它。十进制格式同样适用,因为无论如何我都必须将值更改为字符串。
舍入到0.05等于舍入到最接近的1/20。要四舍五入到任何1 / n,只需乘以n,四舍五入为整数,然后除以n(非整数除法)。 Math.round(x * 20.0) / 20.0
之类的东西似乎足够。
编辑:如果对结果进行精确舍入很重要,则您可能希望尝试对java.math.BigDecimal
实例或其他一些十进制实现进行最终除法。
你去。从位置提取小数,然后将其加回到DecimalFormat
import java.text.DecimalFormat;
public class decimals {
public static void main(String args[]) {
double num = 12.39;
DecimalFormat df2 = new DecimalFormat("#.#");
int secondDecimal = (int) (Math.abs(num) * Math.pow(10, 2)) % 10;
System.out.println(df2.format(num)+round(secondDecimal));
}
public static String round(int num) {
if (num <= 5) {
return "5";
} else {
return "0";
}
}
}