c语言中控制精度是什么意思 - 爱问答

(爱问答)

c语言中控制精度是什么意思

写代码时把一个浮点数*0.1运行时不对,网上查资料后看到说是控制精度,改为*1/10就行了。老师讲课没往这方面讲,我完全不清楚,麻烦解释一下什么叫精度控制

精度主要是指在内存中的存储。比如:int a; int b=5,c=2; a=b/c;printf("a=%d ",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位精度”。

(精度的理解:当从1.000...02变化为1.000...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级。


相关标签:控制c语言

下一篇:安装的5.7.25mysql数据库,在navicatPremium12中如何创建触发器,非常感谢

上一篇:珍爱网靠谱吗

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?