c语言浮点数四舍五入表留一位小数
时间: 2024-10-01 08:03:05 浏览: 14
在C语言中,如果你想对浮点数进行四舍五入保留一位小数,可以使用`<math.h>`库中的`round()`函数,但是`round()`函数返回的是整数,所以你需要手动转换回来。下面是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
#include <stdlib.h> // 包含了free函数,用于删除动态分配的内存
double round_to_one_decimal(double num) {
double rounded_num = round(num * 10); // 先乘10以便四舍五入后直接除以10得到一位小数
// 如果原数的小数部分在0.5及以上,加1;反之,减1
if (num >= 0 && num - floor(num) > 0.5) {
rounded_num += 1;
} else if (num < 0 && num - ceil(num) < -0.5) {
rounded_num -= 1;
}
// 返回四舍五入后的浮点数
return rounded_num / 10.0;
}
int main() {
double number = 3.141592653589793;
double rounded_number = round_to_one_decimal(number);
printf("%.1f 四舍五入后为 %.1f\n", number, rounded_number);
free(number); // 如果number是动态分配的,记得释放内存
return 0;
}
```
在这个例子中,`round_to_one_decimal`函数首先将数字扩大10倍,然后使用`round()`函数将其四舍五入到最接近的整数。接着判断原数的小数部分是否大于等于0.5,如果需要进位则加1,否则减1。最后,再将结果缩小10倍恢复到原来的小数精度。