【发布时间】:2021-08-01 09:37:03
【问题描述】:
当我尝试提取双精度的小数部分时,它似乎在 C 中四舍五入,有没有办法在不四舍五入的情况下做到这一点?
double t = 8.2;
int ipart = (int)t;
long long val = abs((long long)(t*1000000));
long long fpart = (val)%1000000;
fpart 给出 199999,有没有办法在不四舍五入的情况下将其设为 200000?尝试了很多方法,但似乎没有一种方法适用于所有数字。
目的是最终将此双精度转换为字符串,其确切值应为“8.20000”。如果我可以提取 long long 变量中的小数部分,那么我可以使用 snprintf 生成字符串。
【问题讨论】:
标签: c floating-point type-conversion double fractions