Java - 由大数字划分的小数字

时间:2013-10-22 07:03:44

标签: java division

我已将变量声明为double。我想分割两个整数并将输出分配给该双变量。

但它不考虑0.1到0.9之类的值。只有当no为整数时才会返回答案

public static void main(String[] args) throws Exception
{
double itf=0;
a=4100;
b=6076  
itf=a/b;
System.out.println("itf:"+itf)
}

输出为itf:0.0

请帮助..

6 个答案:

答案 0 :(得分:7)

变量ab很可能被定义为int,这将导致整数除法结果为0,当赋值为double时,它变为0.0。如果您将abitf定义为double,则结果应为

0.6747860434496379 

而不是

 0.0

试试这段代码:

public static void main(String[] args) throws Exception {
    double itf = 0;
    double a = 4100;
    double b = 6076;
    itf = a / b;
    System.out.println("itf:" + itf);
}

答案 1 :(得分:2)

ab都是整数,因此a/b的结果也是一个整数,然后将其转换为double,以存储在itf中。要获得正确的结果,您可以将ab定义为双精度,也可以将其中至少一个强制转换为双精度。例如:

itf = (double)a/b;

答案 2 :(得分:1)

将a或b声明为double。

投下手术。

itf = (double)(a/b)

OR 投出其中一个整数。

itf = ((double)a)/b

OR 乘以1.0,即双倍。

itf = (1.0*a)/b

答案 3 :(得分:0)

您的结果的原因是您使用整数除法,然后将结果分配给double值。这是您展开的代码:

int a = 4100;
int b = 6076;
int temp = a / b;
double itf = temp;

如果要显式使用浮点除法,则需要通过将该操作的至少一个(或所有可确定的)成员转换为double或float来告诉编译器。例如:

itf = (double)a / (double)b;

答案 4 :(得分:0)

将以下强制转换用于double

的至少一个操作数
itf=((double)a)/b;

itf=a/((double)b);

答案 5 :(得分:0)

double itf = ((double) a / (double) b);