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