我遇到了一个小问题。我正在尝试删除c中的额外小数位,这将用于计算。
例如67.98345, 我希望它是67.98
但不仅仅是对于printf语句。我需要双倍实际上是67.98而不是67.98345
答案 0 :(得分:2)
@ mvp的答案还可以,但它有一个小问题。如果x接近最大双倍幅度,则乘法的中间值可以溢出双倍。解决此问题的另一种方法是:
double intpart, fracpart;
fracpart = modf(x, &intpart);
x_rounded = intpart + round(fractpart * 100) / 100;
答案 1 :(得分:0)
这将舍入到最接近的值:
double x_rounded = round(x*100)/100;
为了完整性,这些将向下或向上舍入:
double x_rounded_down = floor(x*100)/100;
double x_rounded_up = ceil (x*100)/100;