【发布时间】:2014-01-25 10:07:13
【问题描述】:
我正在编写一个程序,它从用户那里获取以美元为单位的输入,并将其转换为 int,即美分。 用户将始终输入整数或浮点数,最多保留 2 位小数。我想通过乘以 100 将其转换为 int。但是该程序不适用于某些数字。
int cents = (dollars*100);
dollars 是用户给出的浮点输入。例如,如果 I dollars = 4.2,则 cents 变为 419.999。我该如何解决这个问题?
【问题讨论】:
-
使用
long cents之类的大整数类型来存储整个总数(例如,14000.99 美元是 1400099 美分),并且在打印时只需明确打印美元和美分。例如。long cents = 1400099; printf("You've got $%ld.%02ld\n", cents/100, cents%100);
标签: c precision multiplication