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