C++,遇到将双精度转换为整数的问题



需要下面的代码来接受双精度值并以 int 转换

using namespace std;
SymbolTable symbolTable;
void parseAssignments();
int main()
{
Expression* expression;
char paren, comma;
cout << "Enter expression: ";
cin >> paren;
expression = SubExpression::parse();
cin >> comma;
parseAssignments();
cout << "Value = " << expression->evaluate() << endl; 
return 0;
}
void parseAssignments()
{
char assignop, delimiter;
string variable;
double value;
do
{
variable = parseName();
cin >> ws >> assignop >> value >> delimiter;
symbolTable.insert(variable, value);
}
while (delimiter == ',');
}

从 double 转换为 int 的一种快速方法是将 int 设置为等于 double。int 将存储截断的值,这意味着它不会在小数点之后四舍五入,只是忽略它。例如:

double pi = 3.14;
int piApprox = pi;
cout<<pi<<endl; // This will output 3.14
cout<<piApprox<<endl; //This will output 3

希望这有帮助,您的问题与这里的这篇文章非常相似。该文章更详细地介绍了浮点数在计算机中如何工作的工程方面,以及从浮点数转换为 int 的注意事项。

最新更新