如何将整数转换为Java中的float?

我有两个整数xy 。 我需要计算x/y和作为结果我想浮动。 例如,作为3/2的结果,我想要1.5。 我认为最简单(或唯一)的方法是将xy转换为浮点types。 不幸的是,我找不到一个简单的方法来做到这一点。 你能帮我一下吗?

您只需要将至less一个操作数强制转换为float:

 float z = (float) x / y; 

要么

 float z = x / (float) y; 

或(不必要的)

 float z = (float) x / (float) y; 

除非必须,否则不应使用浮点数。 在99%的情况下,双倍是更好的select。

 int x = 1111111111; int y = 10000; float f = (float) x / y; double d = (double) x / y; System.out.println("f= "+f); System.out.println("d= "+d); 

版画

 f= 111111.12 d= 111111.1111 

关注@ Matt的评论。

浮点数的精度很低(6-7位数),相当容易显示很大的舍入误差。 双精度还有9位数字。 在99%的情况下,使用double而不是float的代价是假想的,但是由于舍入误差导致的细微错误的代价要高得多。 出于这个原因,许多开发人员build议不要使用浮点,强烈build议BigDecimal。

但是我发现在大多数情况下使用double可以使用明智的四舍五入

在这种情况下,int x具有32位精度,而浮点数具有24位精度,即使除以1也可能具有舍入误差。 另一方面,双精度的53位精度足以获得相当准确的结果。

在进一步计算之前,您只需将第一个值传递给float:

 float z = x * 1.0 / y; 

这里是你如何做到这一点:

 public static void main(String[] args) { // TODO Auto-generated method stub int x = 3; int y = 2; Float fX = new Float(x); float res = fX.floatValue()/y; System.out.println("res = "+res); } 

再见 !

萨米尔:

 float l = new Float(x/y) 

将不起作用,因为它将首先计算x和y的整数除法,然后从中构build一个浮点数。

 float result = (float) x / (float) y; 

在语义上是最好的候选人。

//我要转换的整数

 int myInt = 100; 

//将整型转换为float

 float newFloat = (float) myInt