打印宽度精度的详解版
自己复制到代码跑一遍看注释就能学会
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
//打印浮点型的时候f前面加数字表示,保留到小数点后多少位
printf("打印类型1:%10f\n", 12.123555555);
// printf("%m.nf\n",12.123555555);
// %[定义打印总长度最少为m].[定义精度最多保留小数n位]f
//如果没有定义精度,那么系统会默认保留6位小数
//这里只写了总长度m最少为10,同时默认保留6位小数
//那么小数点前面也就是左边最少要有3位(小数点也占一位),
//也就是10-6-1=3,而要打印的是12所以缺少一位
//不够3位的系统默认用空格填补,所以打印出来就是12.123556前面多一个空格
printf("打印类型2:%10.f\n", 12.123555555);
//如果只写一个小数点不定义精度n的话,系统默认保留0位小数
//那么这时候左边不足位的填补空格就会多一个,因为保留0位小数系统不打印小数点
printf("打印类型3:%-10.f\n", 12.123555555);
//如果m前面再加一个负号,那么就是把左边补位的空格放到右边去
printf("打印类型4:%010.f\n", 12.123555555);
//如果m前面再加一个0,那么就是把左边补位的空格全换成前导0
// printf("%3d",12345);
return 0;
}
打印结果(最好自己跑一遍看看)
打印类型1: 12.123556
打印类型2: 12
打印类型3:12
打印类型4:0000000012