Java 如何将整数值转换为十进制值?

Java 如何将整数值转换为十进制值?,java,integer-division,Java,Integer Division,我有一个整数值: Integer value = 56472201; 其中的值可以是正的,也可以是负的 当我将这个值除以1000000时,我希望这个结果的形式为56.472201,但它只给出商。我如何才能同时获得商值和余数值?将其转换为浮点,然后执行: int i = 56472201; float j = ((float) i)/1000000.0 编辑:由于精度(在您的情况下需要),请使用double。同样正如康拉德·鲁道夫所指出的,不需要显式铸造: double j = i / 10

我有一个整数值:

Integer value = 56472201;
其中的值可以是正的,也可以是负的


当我将这个值除以1000000时,我希望这个结果的形式为
56.472201
,但它只给出商。我如何才能同时获得商值和余数值?

将其转换为浮点,然后执行:

int i = 56472201;

float j = ((float) i)/1000000.0
编辑:由于精度(在您的情况下需要),请使用double。同样正如康拉德·鲁道夫所指出的,不需要显式铸造:

double j = i / 1000000.0;

必须首先将值转换为浮点类型,否则将执行整数除法

C#中的示例:


(此代码中实际上不需要强制转换,因为除以浮点数将强制转换要匹配的值,但更清楚的是,在代码中写出强制转换,因为这就是实际发生的情况。)

如果将int除以double,将留下一个双精度结果,如本单元测试所示

@Test
public void testIntToDouble() throws Exception {
    final int x = 56472201;
    Assert.assertEquals(56.472201, x / 1e6d);
}

1e6d
是否将
1*10^6
表示为双精度

您使用的是什么语言?结果用于什么?你是想直接显示它,还是想进行其他计算(精确到什么程度)?严格地说,当你除以
float
时(或者在你的例子中,几乎所有语言都是
double
),这种转换是多余的。很好,我只是一个不安全/偏执的程序员(害怕strtok!)谢谢你,伙计,它与@Konrad Rudolph@lalli和@Guffa一起工作,谢谢你的解决方案
@Test
public void testIntToDouble() throws Exception {
    final int x = 56472201;
    Assert.assertEquals(56.472201, x / 1e6d);
}