2012-01-04 61 views
2

我一直没有能够在网站上找到这些规则,(当然,因为我用google搜索错误的东西),所以我在这里问。java数学结果类型

int除以int并存储在double中总是首先存储舍入的整数。我能够找到的唯一方法就是在分割之前将两个值都赋值为double。有一个更好的方法。

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

回答

3

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

  • 整数运算
  • 浮点运算(Float,Double等)

如果2个操作数是整数类型,整数操作被执行。
如果任何人的2个操作数是浮点型,则执行浮点型操作。

这样的:

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

其实,没有不一定有更好的办法。用int除int得到一个int。所以,假设你除以5/2 - 因为没有2到3之间的整数,所以你得到2.如果你想要一个浮点结果,你需要让它们中的一个成为浮点类型;而不是

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

result = f/t; 

使用类型转换告诉它让它

result = f/(double) t ; 

“我想浮点除法该死!”。

1

你只需要投一个参数,使结果的双

int a,b; 
double d = (double) a/b; 

一个更简单的方法是使用从双打开始。

double a, b; 
double d = a/b; 

double可以表示没有舍入误差每个可能int值。

可能重复:How to divide two large integers in java?

0

肯定有一个更好的办法。只需将其中一个投射到double,另一个将自动转换。

类型的表达是由参数确定被存储在它之前,从而其他的答案状态,一个intint分割产生一个int,这将仅然后被存储为double。请注意,这不是特定于Java,它发生在我知道的每一种语言中,都是整数除法。