【发布时间】:2015-09-23 13:11:54
【问题描述】:
我想计算应付零钱,并将其转换为便士。
#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;
}
便士计算为 484,我的便士去哪儿了?
我已经用 float 和 double 尝试过这个,有和没有 static_cast。
我正在学习 c++ 入门课程,所以重点是通过基本操作来完成。
当使用浮点数时,剂量 (4.85 * 100) 的计算结果类似于 484.999999...所以它被截断了?
【问题讨论】:
标签: c++ type-conversion