C语言中,为什么要进行什么“双精度浮点”之类的定义?有什么用?
展开全部
差不多这个意思:你用int类型能进行圆周率的计算么,你money计算可能都是整数么?你任何东西的长度可能都是整好整数么?满足更苛刻的需求,你就得定义更适合的数据类型。
浮点数的精度取决于尾数部分。尾数部分的位数越多,能够表示的有效数字越多。
单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。
双精度的尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位
浮点数的精度取决于尾数部分。尾数部分的位数越多,能够表示的有效数字越多。
单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。
双精度的尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位
展开全部
双精度浮点(长双精度)型数据用%lf输出
短整型数据用%u输出
%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字符串
%%显示百分号本身
短整型数据用%u输出
%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字符串
%%显示百分号本身
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
普通的单精度浮点数只能保证7位左右的十进制有效位数。在一些需要更高精度的计算中,使用双精度浮点数可以保证15位左右的十进制有效位数,能够满足大多数科学计算的要求。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C程序是先编译后执行的,只有用这种方法定义变量,才能告诉编译器足够的信息,让编译器能为变量分配合适的内存空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |