小编Kev*_*tta的帖子

为什么浮动这样做?

我正在玩普通的旧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)

我知道我可以把我的美分转换成一个字符串,并尝试格式化它,但我喜欢,但我很困惑为什么一个浮点数会这样做.任何人都可以告诉我为什么会发生这种情况,以及如何处理它?

c floating-point

0
推荐指数
1
解决办法
172
查看次数

标签 统计

c ×1

floating-point ×1