2017-10-06 47 views
0

为什么在第一行中七个十二分之一将评估为预期答案(0.5833),但三个二十六分之三将评估为零?我认为,由于数据类型是双精度型的,所以将3除以26的操作将是十进制的,但它看起来好像它将整个操作作为整数运算,然后将该答案转换为double并将其存储在三个二十六个十六进制中。数学运算对于不同的数据类型是不同的吗?

double sevenTwelfths = ((double) 7/12); 
    double threeTwentySixths = 3/26; 
+0

是的,它们是不同的。 int/int - > int。 double/int - > double。 –

回答

0

double sevenTelfelfs =((double)7/12);

在第一行这个叫做类型转换意味着你将你的答案在双例如

INT sevenTwelfths =((int)的7/12)); 这意味着除以7/12之后,无论是将anser转换为int还是将类型转换为int