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

时间:2010-12-07 14:42:01

标签: java integer floating-point

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

6 个答案:

答案 0 :(得分:125)

你只需要强制至少有一个操作数到浮点数:

float z = (float) x / y;

float z = x / (float) y;

或(不必要的)

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

答案 1 :(得分:5)

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

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的评论。

float具有非常小的精度(6-7位)并且相当容易地显示出明显的舍入误差。 double有另外9位精度。在99%的情况下使用double而不是float的成本是名义上的,但是由于舍入误差导致的细微错误的成本要高得多。出于这个原因,许多开发人员建议不要使用浮点,强烈推荐BigDecimal。

但是我发现在大多数情况下可以使用double 如果使用了合理的舍入

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

答案 2 :(得分:5)

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

float z = x * 1.0 / y;

答案 3 :(得分:3)

以下是如何做到这一点:

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);
}

见到你!

答案 4 :(得分:3)

//我要转换的整数

int myInt = 100;

//将整数转换为float

float newFloat = (float) myInt

答案 5 :(得分:1)

萨米尔:

float l = new Float(x/y)

将无效,因为它将首先计算x和y的整数除法,然后从中构造一个浮点数。

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

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