我正在制作一个简单的计算器,你可以选择一个功能,然后2个输入来得到你的答案.这是一个简洁的小程序,除了权力之外,一切都运行顺畅.每个号码都正常工作.
但根据这个:5^2=24, 5^3=624
.我在用pow(number1,number2)
.
#include#include using namespace std; int main() { for(;;){ int func; int number1; int number2; cout << "Input your function (+,-,x,/,Square,Power)(1,2,3,4,5,6) "; cin >> func; cout << "input #1: "; cin >> number1; cout << "input #2: "; cin >> number2; if (func==1){ int answer; answer = number1 + number2; cout << number1 << " + " << number2 << " = " << answer << endl; } else { if (func==2){ int answer; answer = number1 - number2; cout << number1 << " - " << number2 << " = " << answer << endl; } else { if (func==3){ int answer; answer = number1 * number2; cout << number1 << " x " << number2 << " = " << answer << endl; } else { if (func==4){ int answer; answer = number1 / number2; int R = number1 % number2; cout << number1 << " / " << number2<< " = " << answer << " R "<< R << endl; } else { if (func==5){ int answer; answer = pow(number1,0.5); cout << "?" << number1 << "=" << answer << endl; } else { if (func==6){ int answer; answer = pow(number1,number2); cout << "?" << number1 << "^" << number2 << "=" << answer << endl; } } } } } } } }
Jerry Jeremi.. 7
pow()
将数字作为浮点返回.真正回归的是24.99997或类似的东西.但是你通过将它分配给一个整数来截断它并且它出现为24.在这种情况下可以分配给一个整数,因为你知道答案将永远是一个整数所以你需要对它进行舍入 - 而不是截断它.舍入为整数的常规方法是添加0.5,如下所示:
int answer; answer = pow(number1,number2)+0.5;
另一方面,平方根可能不应该分配给一个整数 - 几乎每个平方根都有小数位.
pow()
将数字作为浮点返回.真正回归的是24.99997或类似的东西.但是你通过将它分配给一个整数来截断它并且它出现为24.在这种情况下可以分配给一个整数,因为你知道答案将永远是一个整数所以你需要对它进行舍入 - 而不是截断它.舍入为整数的常规方法是添加0.5,如下所示:
int answer; answer = pow(number1,number2)+0.5;
另一方面,平方根可能不应该分配给一个整数 - 几乎每个平方根都有小数位.