我想知道如何在Java中获得单值的余数和商.
例:
3/2我应该得到1.5的价值.
如果我使用/运算符,我只得到商.如果我使用%操作员,我只得到余数.如何在同一个变量中同时获得两者?
rec*_*ive 57
quotient = 3 / 2;
remainder = 3 % 2;
// now you have them both
Run Code Online (Sandbox Code Playgroud)
vla*_*adr 16
在您的示例中,Java正在执行整数运算,舍入除法的结果.
根据您的问题,您希望执行浮点运算.为此,必须至少将一个术语指定为(或转换为)浮点数:
指定浮点数:
3.0/2
3.0/2.0
3/2.0
Run Code Online (Sandbox Code Playgroud)
转换为浮点数:
int a = 2;
int b = 3;
float q = ((float)a)/b;
Run Code Online (Sandbox Code Playgroud)
要么
double q = ((double)a)/b;
Run Code Online (Sandbox Code Playgroud)
(请参阅Java陷阱:双重和Java浮点数复杂性,以便讨论float和double)
小智 8
看看这个:http://download.oracle.com/javase/1,5.0/docs/api/java/math/BigDecimal.html#divideAndRemainder%28java.math.BigDecimal%29
您只需要在BigDecimal对象中包装int或long变量,然后在其上调用divideAndRemainder方法.返回的数组将包含商和余数(按此顺序).