java数学结果类型

java数学结果类型,java,Java,我在网站上找不到这些规则(当然是因为我用谷歌搜索了错误的东西),所以我在这里问 将整数除以整数并存储在double中总是首先存储取整的整数。我能找到的唯一方法是在除法之前将两个值都转换为double。一定有更好的办法 另外,返回类型的规则在哪里?事实上,没有更好的方法。把一个整型数除以一个整型数得到一个整型数。所以,假设你除以5/2——因为2和3之间没有整数,所以得到2。如果需要浮点结果,则需要将其中一个结果设置为浮点类型;而不是 int f=5, t=2; double result;

我在网站上找不到这些规则(当然是因为我用谷歌搜索了错误的东西),所以我在这里问

将整数除以整数并存储在double中总是首先存储取整的整数。我能找到的唯一方法是在除法之前将两个值都转换为double。一定有更好的办法


另外,返回类型的规则在哪里?

事实上,没有更好的方法。把一个整型数除以一个整型数得到一个整型数。所以,假设你除以5/2——因为2和3之间没有整数,所以得到2。如果需要浮点结果,则需要将其中一个结果设置为浮点类型;而不是

 int f=5, t=2;
 double result;

 result = f/t;
成功

 result = f / (double) t ;

使用类型转换告诉它“我想要浮点除法dammit!”。

在编程语言中,有两种类型的操作:

  • 整数运算
  • 浮点运算(浮点、双精度)
如果2个操作数为整数类型,则执行整数运算。
如果两个操作数中的任何一个都是浮点,则执行浮点运算

因此:

Int / Int --------> int
Double / Int -----> Double
Double / Double --> Double

您只需强制转换一个参数即可使结果为双精度

int a,b;
double d = (double) a / b;
一个更简单的方法是从一开始就使用双倍

double a, b;
double d = a / b;
double
可以表示所有可能的
int
值,而不存在舍入误差


可能重复:

确定有更好的方法。只需将其中一个转换为双精度,另一个将自动转换

表达式的类型由存储前的参数确定,因此,与其他答案状态一样,
int
除以
int
将生成一个
int
,该值只会存储为
双精度
。请注意,这并不是Java特有的,它发生在我所知道的所有进行整数除法的语言中