//floats
#include<stdio.h>
int main(){
const double RENT = 3852.99;
printf("*%f*\n",RENT);
printf("*%e*\n",RENT);
printf("*%4.2f*\n",RENT);
printf("*%3.1f*\n",RENT);
printf("*%10.3f*\n",RENT);
printf("*%10.3E*\n",RENT);
printf("*%+4.2f*\n",RENT);
printf("*%010.2f*\n",RENT);
return 0;
}
1.%f 原样输出字段宽度与小数点后面的位数均为系统默认设置,字段宽度=容纳待打印数字所需位数,小数点后打印6位数字。
2.%e
(1)%e:不指定输出数据所占的宽度和数字部分的小数位数,有的C编译系统自动指定给出数字部分的小数位数为6位,指数部分占5位(如e+002),其中"e"占1位,指数符号占1位,指数占3位,总的指数部分占5位。数值按规范化指数形式输出。例如:printf("%e",123.456);输出如下:1.234560e+002(共13列,有的系统的规定有所不同)
(2)%m.ne 输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。
(3)%m.ns 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
默认情况下,编译器在小数点左边打印一个一个数字,在小数点右侧打印6个数字,即指定给出数字部分的小数位数为6位,指数部分占5位(如e+002),其中"e"占1位,指数符号占1位,指数占3位,总的指数部分占5位。数值按规范化指数形式输出。
例如:printf("%e",123.456);输出如下:1.234560e+002
printf("%-10.2e",-198.345);输出如下:-1.98e+003
3.%+4.2f 使得打印的值前面多了一个代数符号(+)。
4.%010.2f 的第一个0是标记,句点(.)之前、标记之后的数字(本例为10)是指定的字段宽度。
5.第4个和第6个例子对结果进行了四舍五入。