Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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_Android - Fatal编程技术网

Java 如果结果是十进制和非十进制的,我应该使用什么数据类型

Java 如果结果是十进制和非十进制的,我应该使用什么数据类型,java,android,Java,Android,我从数据库接收到的点是整数。在收到点后,我正在做一些计算,并向用户显示结果。 假设我收到了20,21,22。我现在做的是21/1.5+20+22,结果是43.50,但有些时候我得到的分数都是相等的,所以结果会是50.00。 问题是如果十进制数不是00,我想显示43.50,如果十进制数是00,我想显示50。。 我应该使用什么样的数据类型来计算和显示上面提到的结果。谢谢。 目前我正在使用这个,但使用整数不会显示小数 int tot = a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a

我从数据库接收到的点是整数。在收到点后,我正在做一些计算,并向用户显示结果。 假设我收到了20,21,22。我现在做的是21/1.5+20+22,结果是43.50,但有些时候我得到的分数都是相等的,所以结果会是50.00。 问题是如果十进制数不是00,我想显示43.50,如果十进制数是00,我想显示50。。 我应该使用什么样的数据类型来计算和显示上面提到的结果。谢谢。 目前我正在使用这个,但使用整数不会显示小数

int tot = a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13+a14+a15+a16+a17+a18+a19+a20+a21+a22+a23+a24;

如果您只想显示精确的2位小数,您可以使用DecimalFormat,例如,在计算浮点值时,您可以使用double或float type

DecimalFormat df   = new DecimalFormat("#,##0.00");
String formatedTot = df.format(tot);
System.out.println(formatedTot);

从描述中很难给你指出正确的方向

请展示一些代码如何在Android中显示结果


关于数据类型,应该清楚的是,您不能将
整数
转换为
十进制
,因为您不能神奇地向其添加十进制值。因此,我想您需要一个
decimal
数据类型,并且需要检查它是否是一个
整数
,这里解释了这一点:

将输出保存为双精度数据类型,并在显示对它的put检查时,如下所示:

    Double result;
    if (result%1.0 == 0.0){
        // show result.intValue();
    } else {
        // show result System.out.printf("result : %.2f%n", result);
    }

您的问题不在于计算,而在于显示结果。当您使用
int
Integer
进行计算时,Java将始终向下取整。甚至
float
double
都只是近似值()。根据结果的准确度,使用
float
(中等准确度)、
double
(正常准确度)或
BigDecimal
(最佳准确度)


要解决您的问题,请根据需要精确计算您的数字,并在打印时定义数字的表示方式。

您可以使用
double
数据类型或
float
数据类型。如果需要检查小数点后的余数,可以使用

            double num = 50.00;
            if (num % 1.0 == 0.0){
            int numOne = (int) num;
            System.out.println(numOne)
            }

我编辑的上述内容(由Rajat Mehra编写)将余数为“0”的值转换为整数,并相应地显示它们。

您的输入是一组整数。您的问题意味着您不希望四舍五入,因此计算结果应为浮点或双精度

double result = calculate(integers);
注意,即使结果是整数,也要显示计算值的小数部分。Java有多种选项来格式化输出。一种简单的方法是使用printf

System.out.printf("result=%.2f%n", result);

在计算时我应该使用double吗?@ZaidKhan是的,在计算时使用double,否则数据将被舍入。还有一个问题我应该接受哪个答案,因为每个答案都对我有帮助。@ZaidKhan是对你帮助最大的一个。把所有有帮助的答案都投上一票。现在我很清楚我是在分裂和困惑。谢谢!我想显示2个小数位,但如果小数位不是00。