C ++,将float / double转换为int时丢失1?

时间:2015-09-23 13:11:55

标签: c++ type-conversion

我想计算到期的变化,并将其转换为便士。

#include <iostream>
using namespace std;

int main()
{
    float cost   = 5.15,
          paid   = 10.00,
          change = 0.0;

    int pennies = 0.0;

    change = paid - cost;
    pennies = static_cast<int>(change * 100);

    cout << change << endl;       //4.85
    cout << pennies << endl;      //484  ??

    return 0;
}

Pennies评估为484,我的便士去哪儿了?

我已尝试使用float和double,使用和不使用static_cast。

我参加了一个介绍c ++课程,所以重点是基本操作。

剂量(4.85 * 100)评价为484.999999 ...使用浮点数时会被截断?

1 个答案:

答案 0 :(得分:1)

使用round ......................................... ................