C ++,遇到将double转换为int的问题

时间:2019-12-11 04:57:59

标签: 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 == ',');

}

1 个答案:

答案 0 :(得分:0)

从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

希望这会有所帮助,您的问题与这篇帖子here非常相似。那将详细介绍计算机中浮点数如何工作的工程方面以及从浮点数转换为整数的预防措施。