这个代码输出整数的原因是在计算表达式时,使用了整数除法操作符 /
,当操作数都为整数时,结果将会被截断为整数。要得到小数结果,可以将操作数或者其中一个操作数转换为浮点型数据。
在 evaluateExpression
函数中,在进行除法运算之前添加以下代码:
if (operand2 != 0) {
push(&operandStack, operand1 / operand2);
} else {
printf("Error: Division by zero\n");
exit(0); // 程序异常退出
}
更改为:
if (operand2 != 0) {
push(&operandStack, (float)operand1 / operand2);
} else {
printf("Error: Division by zero\n");
exit(0); // 程序异常退出
}
通过强制类型转换 (float)
将 operand1
转换为浮点型数据,使得除法运算结果保持小数形式。
内容由零声教学AI助手提供,问题来源于学员提问