我正在玩普通的旧C.我只是计算一些便士,然后在一定次数的迭代中以指数方式增加数量.在这个过程的最后,我想要在屏幕上以美元和美分显示大量的美分/便士.
我的输出电流如下所示:
"You have 805306365 pennies"
Run Code Online (Sandbox Code Playgroud)
我试图通过将一个新变量定义为float来将此数字转换为美元:
float totalD = total / 100.00;
Run Code Online (Sandbox Code Playgroud)
输出显示8053063.50.为什么这个int的划分造成了15美分的损失?我试图通过"printf"显示它,如果这有助于:
printf("You have %.2f dollars", totalD);
Run Code Online (Sandbox Code Playgroud)
我知道我可以把我的美分转换成一个字符串,并尝试格式化它,但我喜欢,但我很困惑为什么一个浮点数会这样做.任何人都可以告诉我为什么会发生这种情况,以及如何处理它?