我有一个类似战斗的程序,每次攻击都会从两个数字的范围内随机造成伤害,例如,一次攻击可以造成60到70左右的伤害。我说“ish”是因为每次我显示伤害量时,它都会给出一个非常大的十进制数字,比如70。28326772002643。
我想知道如何使它仍然显示小数,但要小得多,比如70.28。我该怎么做?
这不是重复的,因为另一个问题有python语法,我想知道如何在Java中实现。
另外,它不是重复的,因为我的类型是双精度的,而不是浮点数。
以下内容将为您提供帮助:
public class Main {
public static void main(String[] args) {
double d1=70.28326772002643;
double d1rounded=Math.round(d1 * 100.0) / 100.0;
System.out.println(d1rounded);
double d2=70.28726772002643;
double d2rounded=Math.round(d2 * 100.0) / 100.0;
System.out.println(d2rounded);
}
}
输出:
70.28
70.29
我还推荐你查看一下如何在Java中将一个数字四舍五入到n位小数,以获得一些更好的方法。
假设您的输出是双输出 = 70.28326772002643
;
做,
DecimalFormat deci = new DecimalFormat("#.00");
double newOutput = deci.format(output);
新输出将等于70.28
使用打印 f
方法或字符串格式
:
> double d = 1.23456;
> System.out.printf("%.2f\n", d);
1.23
> System.out.printf("%.3f\n", d);
1.235
> String.format("%.2f", d);
"1.23" (String)
> String.format("%.3f", d);
"1.235" (String)