Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中去掉几个小数点?_Java - Fatal编程技术网

如何在java中去掉几个小数点?

如何在java中去掉几个小数点?,java,Java,我有一个类似于战斗的程序,每次攻击都会造成两个数字范围内的随机伤害,例如,一次攻击可以造成60到70的伤害。我之所以说“ish”,是因为每次我显示伤害金额时,它都会给出一个非常大的十进制数字,比如70.28326772002643 我想知道如何使它仍然显示小数,但要少得多,比如70.28。我该怎么做 这不是重复的问题,因为另一个问题有python语法,我想知道如何在Java中实现它 此外,它不是重复的,因为我的类型是双精度,而不是浮点型。以下内容将为您提供解决方案: public class M

我有一个类似于战斗的程序,每次攻击都会造成两个数字范围内的随机伤害,例如,一次攻击可以造成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
我还建议您检查一些更好的方法。

round()函数可以从double转换为integer,您可以将100相乘,然后除以100得到2位小数

    double pi = Math.PI;
    double pi_round = 0.01* Math.round(pi * 100);
    System.out.println(pi_round);

假设您的输出是
双输出=70.28326772002643

新输出将等于70.28使用该方法,或:

>双d=1.23456;
>System.out.printf(“%.2f\n”,d);
1.23
>System.out.printf(“%.3f\n”,d);
1.235
>字符串格式(“%.2f”,d);
“1.23”(字符串)
>字符串格式(“%.3f”,d);
“1.235”(字符串)

签出
System.out.printf
以及提到的
格式
说明符文档。参与者似乎不想打印出值(因为您上面的评论有答案),他们想将其存储在十进制中。所以,它是@ThomasRokicki的复制品,它本身就是复制品的复制品。不,它不会。大多数情况下都会失败,这是必须的。请看我的答案的副本以作证明。
DecimalFormat deci = new DecimalFormat("#.00");

double newOutput = deci.format(output);