我有一个整数值:
Integer value = 56472201;
价值可能是正面的还是负面的。
当我将值除以1000000时,我希望此结果采用56.472201
形式,但它只给出了商数。我怎样才能得到商和余数值?
答案 0 :(得分:6)
将它投射到浮动然后执行:
int i = 56472201;
float j = ((float) i)/1000000.0
编辑:由于精确度(在您的情况下需要),请使用double。同样如Konrad Rudolph指出的那样,不需要明确的演员:
double j = i / 1000000.0;
答案 1 :(得分:1)
如果你将一个int除以一个double,你将得到一个双重结果,如本单元测试所示。
@Test
public void testIntToDouble() throws Exception {
final int x = 56472201;
Assert.assertEquals(56.472201, x / 1e6d);
}
1e6d
1 * 10^6
表示为双重
答案 2 :(得分:0)
您必须先将值转换为浮点类型,否则您将进行整数除法。
C#中的示例:
int value = 56472201;
double decimalValue = (double)value / 1000000.0;
(此代码中实际上不需要强制转换,因为除以浮点数会将值转换为匹配,但是在代码中写出强制转换更清楚,因为这实际上就是这样。)