提问者:小点点

如何在java中摆脱几个小数点?[重复]


我有一个类似战斗的程序,每次攻击都会从两个数字的范围内随机造成伤害,例如,一次攻击可以造成60到70左右的伤害。我说“ish”是因为每次我显示伤害量时,它都会给出一个非常大的十进制数字,比如70。28326772002643。

我想知道如何使它仍然显示小数,但要小得多,比如70.28。我该怎么做?

这不是重复的,因为另一个问题有python语法,我想知道如何在Java中实现。

另外,它不是重复的,因为我的类型是双精度的,而不是浮点数。


共3个答案

匿名用户

以下内容将为您提供帮助:

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)