gpt4 book ai didi

java - 为什么 java 不在表达式中自动将 int 转换为 double?

转载 作者:行者123 更新时间:2023-11-30 08:14:41 26 4
gpt4 key购买 nike

我的问题:

int a = 30, b = 12, c = 2, d = 5, e = 1;

double result = (double) (a - b / (c * d) + e);

System.out.print("Result = " + (double) result + " - " + result);

结果:

Result = 30.0 - 30.0

我想看到的是:29.8!

我有整数,但我想计算一个我需要 double 的表达式。

有没有一种简单的方法可以完成我尝试过的事情?

最佳答案

您必须将表达式中的一个整数转换为double。实际上,您不能转换任何整数。要转换的重要一个是除法的操作数之一,因为整数除法是您遇到的精度损失的原因)。

例如:

double result = (a - (double)b / (c * d) + e);

double result = (a - b / (double)(c * d) + e);

这将确保使用浮点运算完成除法。

关于java - 为什么 java 不在表达式中自动将 int 转换为 double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29340823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com