#include <stdio.h>
int main()
{
int a=1234;
float b=123.456;
double c=12345.54321;
printf("\n%2d,%2.1f,%2.11f",a,b,c);
}
/*
%d 有符号10进制整数
%i 有符号10进制整数
%o 有符号8进制整数
%u 无符号10进制整数
%x 无符号的16进制数字,并以小写abcdef表示
%X 无符号的16进制数字,并以大写ABCDEF表示
%F/%f 浮点数
%E/%e 用科学表示格式的浮点数
%g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
%c 单个字符
%s 字符串
%% 显示百分号本身
*/
/*
%md: m为指定输出数据的宽度 如果位数小于m,则左端补以空格,如果大于m,则按实际位数输出
显然a=1234的位数是4 大于%2d中指定的长度2 按实践位数输出 所以结果为1234
%m.nf格式:指定输出数据宽度为m位,其中小数占n位,如果数值长度小于m,则左端补空格,%-m.nf与上差不多,只是如果数值长度小于m,则右端补空格,大于的话就按原长度输出
%2.1f就是指长度2位,含一位小数位,由于原长度大于2,所以原样输出,但只能右一位小数,所以结果是123.4
%2.11f,就是含11位小数,显然长度不够,则右端补零 结果位12345.54321000000
%e:不指定输出数据所占的宽度和数字部分的小数位数,有的C编译系统自动指定给出数字部分的小数位数为6位,指数部分占5位(如e+002),其中"e"占1位,指数符号占1位,指数占3位,总的指数部分占5位。数值按规范化指数形式输出。例如:printf("%e",123.456);输出如下:1.234560e+002(共13列,有的系统的规定有所不同);
%m.ne 输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。
s格式符,用来输出字符串。
%m.ns 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
*/
输出精度问题
最新推荐文章于 2026-06-21 11:51:30 发布
本文主要探讨了在C语言编程中遇到的精度问题,包括浮点数的表示误差、计算精度损失以及如何通过特定方法优化精度。通过对C语言标准库的深入理解,读者将了解到如何更精确地进行数值计算,并掌握避免精度问题的关键技巧。

2万+

被折叠的 条评论
为什么被折叠?



