1

可能的重复:
Java 整数除法:如何产生双精度数?

当我将 2 个数字相除以尝试得到类似 0.90 的结果时,我不断得到 1.0 或 0.0

int number1 = 6517253;
int number2 = 7195629;
double number3 = number1 / number2; //returns 0.0 supposed to be 0.9057239 and I want 0.90
double number4 = number2 / number1; //returns 1.0 supposed to be 1.1040893 and don't really want that one

如果我将 double 更改为 float,也会做同样的事情。

4

3 回答 3

7

您应该将其中一个操作数转换为double. 尝试:

double number3 = (double) number1 / number2;
double number4 = (double) number2 / number1;

这是因为 Java 推断出int / intas的类型int,但是double / int推断出的类型为double

于 2012-12-02T23:04:23.267 回答
0

将其中一个数字转换为双倍:

     double number3 = number1 / (double) number 2
于 2012-12-02T23:06:23.977 回答
0

java中对文字或整数变量的每个操作都返回一个整数类型(uint32),因此您需要对操作进行类型转换

double number3 = (double)number1/number2;
于 2012-12-02T23:06:48.743 回答