截断双倍而不在C中舍入

Cod*_*der 10 c c++

让我们考虑一下double R = 99.999999;(可以通过一些其他计算的结果获得),现在所需的输出是99.99

我尝试过使用printf("%.2lf",R);它但它的价值已经四舍五入.如何获得所需的输出?(最好使用printf)

Han*_*ant 10

#include <math.h>
...
    printf("%.2f", floor(100 * R) / 100);
Run Code Online (Sandbox Code Playgroud)


Mic*_*fik 0

你能乘以 100 然后截断为整数吗?然后您可以像使用美元和美分一样格式化结果。由于浮点表示问题,简单地除以 100 可能会让您回到第一个方。