0

为什么代码

double slope = (double)changeY/changeZ 

将斜率设置为 0.0,在我拥有的程序中,changeX = 20 和 changeY = 10(两个整数)?

4

1 回答 1

10

听起来您使用了错误的变量。尝试这个:

int changeX = 20;
int changeY = 10;

double slope = (double)changeY/changeX;

强制转换运算符 () 的优先级高于 /。该表达式将被评估为:

  • 投射changeYdouble.
  • 隐式转换changeXdouble. 如果一个操作数是double,那么另一个操作数也与 a 平衡double(这正式称为“通常的算术转换”)。
  • 将两个操作数相除。结果将是双倍的。
  • 将这个临时的“结果双倍”存储到另一个称为斜率的双倍中。
于 2012-11-26T12:04:46.040 回答