我已将变量声明为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
请帮助..
答案 0 :(得分:7)
变量a
和b
很可能被定义为int
,这将导致整数除法结果为0,当赋值为double时,它变为0.0。如果您将a
,b
和itf
定义为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)
a
和b
都是整数,因此a/b
的结果也是一个整数,然后将其转换为double,以存储在itf
中。要获得正确的结果,您可以将a
和b
定义为双精度,也可以将其中至少一个强制转换为双精度。例如:
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);