c语⾔编程怎么控制精确度,C语⾔中控制精度是什么意思
浮点数的基数什么意思精度主要是指在内存中的存储。⽐如:int a; int b=5,c=2; a=b/c;printf("a=%d\n",a); 只会输出a=2⽽不会输出2.5或3。
c语⾔中:
float浮点数7位有效数字。
double双精度数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位
单精度浮点数的实际有效精度为24位⼆进制,这相当于 24*log102≈7.2位10进制的精度,所以平时我们
说“单精度浮点数具有7位精度”。
(精度的理解:当从02变化为12时,变动范围为2-23,考虑到因为四舍五⼊⽽得到的1倍精度提⾼,所以单精度浮点数可以反映2-24的数值变化,即24位⼆进制精度)浮点数7位有效数字。(应该是单精度数)双精度数16位有效数字。
浮点数取值范围:负数取值范围为 -3.4028235E+38 到 -1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。
双精度数取值范围:负值取值范围-1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范围为
4.94065645841246544E-324 到 1.79769313486231570E+308。
所以精度是测量值与真值的接近程度。包含精密度和准确度两个⽅⾯精度的等级是以它的允许误差占表盘刻度值的百分数来划分的,其精度等级数越⼤允许误差占表盘刻度极限值越⼤。
量程越⼤,同样精度等级的,它测得压⼒值的绝对值允许误差越⼤。
精度经常使⽤的的精度为 2.5 、1.5 级,如果是1.0和0.5级的属于⾼精度,现在有的数字已经达到0.25级。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论