钱数面额c++
money count denomination C++
所以我的项目是开发一个应用程序,用户输入一个金额(例65.67),输出打印总共有多少美元、25美分、10美分、5美分和1美分(示例是5.52美元是5美元、2个25美分和2个1美分)。下面我留下了处理总数计算的代码块。1美元和25美分的硬币分配得很合理,但10美分、5美分和1美分却没有。我的逻辑出了问题,任何建议都将不胜感激。我用的是windows 8.1, Code::Blocks IDE
// Calculations for money denomination//
float dollar = floor(total);
total = total-dollar;
float quarter = floor(total/.25);
total= total -(quarter*.25);
float dime = floor(total/.1);
total = total-(dime*.1);
float nickel = floor(total/.05);
total = total-(total*.05);
float penny = floor(total/.01);
total = total-(total*.01);
处理货币值应该使用整数,因为在对浮点值执行计算操作时不能保证浮点值正确舍入。
基本上,你应该使用尽可能小的货币单位(美分),并以这些单位管理所有的货币价值。在显示值时,您将转换为用户期望的适当格式。
谢谢大家的建议,这是我最后做的。我敢肯定这不是最优雅的方式,但它能完成任务。
/// This states variables as well as evolving tally of dollar amount ///
int _total = (total*100)+.5;
int dollar = _total/100;
_total = _total%100;
int quarter = _total/25;
_total= _total%25;
int dime = _total/10;
_total = _total%10;
int nickel = _total/5;
_total = _total%5;
int penny = _total/1;
_total = _total%1;
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '