对于涉及多种类型变量(如整数和双精度)的计算,以下方法在不导致任何隐藏错误或信息丢失方面是正确的方法吗?
int a = 2;
double b = 3.0;
double c;
c = (double)(a+b);
c = (double)(a/b);
另一种情况是:
int x =2;
int y = 3;
double z;
z = x / y不会给我正确的值,如0.666666666,如何处理这种情况?
答案 0 :(得分:1)
在float和integer之间执行操作时,结果是float。通常,结果将是更大的数据类型。如果你想要小数精度,你首先要做的是正确的。你甚至不需要演员表。
在第二种情况下,你可以做几件事
z = x/(y*1.0) // convert the variable upon calulation
或
float x =2; // convert the variable itself