1、使用 printf 格式化输出
printf
函数可以通过格式化控制浮点数的显示精度。使用 %.2f
可以指定显示两位小数。
#include <stdio.h> int main() { double num = 3.14159265358979; printf("%.2f\n", num); // 输出 3.14 return 0; }
2、使用 snprintf 格式化并存储值
如想要将格式化后的浮点数存储为字符串,可以使用 snprintf
。
#include <stdio.h> int main() { double num = 3.14159265358979; char str[10]; snprintf(str, sizeof(str), "%.2f", num); printf("Formatted string: %s\n", str); // 输出 "3.14" return 0; }
3、四舍五入浮点数值
如想 修改浮点数的值(即,实际存储的数值保留两位小数),而不仅仅是格式化输出,可以通过数学方法来完成。常见的做法是通过乘法和除法来进行四舍五入。
#include <stdio.h> #include <math.h> int main() { double num = 3.14159265358979; num = round(num * 100.0) / 100.0; // 四舍五入到两位小数 printf("%.2f\n", num); // 输出 3.14 return 0; }
还可以使用 floor
或 ceil
来控制浮点数的舍入方式。
#include <stdio.h> #include <math.h> int main() { double num = 3.14159265358979; num = floor(num * 100.0 + 0.5) / 100.0; // 向上舍入 printf("%.2f\n", num); // 输出 3.14 return 0; }
4、使用示例
#include <stdio.h> #include <math.h> int main() { double num = 3.14159265358979; // 格式化输出 printf("Formatted output: %.2f\n", num); // 输出 3.14 // 四舍五入修改数值 num = round(num * 100.0) / 100.0; printf("Rounded value: %.2f\n", num); // 输出 3.14 // 使用 snprintf 保存格式化后的字符串 char str[10]; snprintf(str, sizeof(str), "%.2f", num); printf("Formatted string: %s\n", str); // 输出 "3.14" return 0; }