为什么不全用双精度浮点型型

您的位置: >
C#中float的取值范围和精度
学习标签:
本文导读:C#语言中有两种小数类型,分别为32位单精度浮点型(float)和64位双精度浮点型(double)。其中精度指的是小数位数,小数位数越多,精度越高。float在内存中存放数据占用的内存为4字节。
float类型的表现形式:
默认情况下,赋值运算符右侧的实数被视为 double。 因此,应使用后缀 f 或 F 初始化浮点型变量,如以下示例中所示:
float x = 3.5F;
如果在以上声明中不使用后缀,则会因为您尝试将一个 double值存储到 float 变量中而发生编译错误。
float的取值范围
&float占用4个字节,和int是一样,也就是32bit.
1bit(符号位) 8bits(指数位) 23bits(尾数位)
存储方式如下图:
取值范围基本表达法
(浮点)数值 = 尾数 & 底数 ^ 指数,(附加正负号)----------------
于是,float的指数范围为-127~128,而double的指数范围为-,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。
其他特殊表示
1.当指数部分和小数部分全为0时,表示0值,有+0和-0之分(符号位决定),0x表示正0,0x表示负0.
2.指数部分全1,小数部分全0时,表示无穷大,有正无穷和负无穷,0x7f800000表示正无穷,0xff800000表示负无穷.
3.指数部分全1,小数部分不全0时,表示NaN,分为QNaN和SNaN,Java中都是NaN.
可以看出浮点数的取值范围是:2^(-149)~~(2-2^(-23))*2^127,也就是Float.MIN_VALUE和Float.MAX_VALUE.
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的&1&,由于它是不变的,故不能对精度造成影响。
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
您可能感兴趣
一月好评排行榜21ic官方微信-->
后使用快捷导航没有帐号?
查看: 3601|回复: 9
c51中为什么很少使用长整型和浮点型的数据类型????
&&未结帖(10)
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
---------------------
主题帖子积分
---------------------
专家等级:结帖率:97%打赏:0.00受赏:40.00
主题帖子积分
---------------------
因为 51 是 8 位机, 运算能力低, 也只有整数运算指令.
长整型和浮点型的数据计算很费时间. 尽量避免
欢迎进入 !
主题帖子积分
主题帖子积分
专家等级:结帖率:98%打赏:0.00受赏:2.00
主题帖子积分
触摸按键中间开个孔,放led
说的好听点 我万事略懂。其实我什么都不会。
主题帖子积分
主题帖子积分
专家等级:结帖率:98%打赏:0.00受赏:2.00
主题帖子积分
回复错了,不好意思,
lz可以编译一下,看看有少语句。最好还是只用8位运算
说的好听点 我万事略懂。其实我什么都不会。
主题帖子积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
因为太穷,穷则思变,要干,要革命。51最大的弱点就是架构不好,资源有限,内存小,程序空间小,速度低,位数小,计算能力差。
故它比较适用于简单的计算和控制。
假若用脑桨的工作就效率很低下,故比较适用于新人的入门学习。
由于上述原因,在学习到了某个阶段后,它将很难发挥自己的创作力。
如同人穷一样,总是考虑每天的柴米油盐酱醋,那有什么潇洒的作为?
看看PC端程序员有几个考虑像MCU程序员如此精细?
故菜农认为现在是主张远离51珍惜脑桨的时候和该进入新的MCU时代了。
以前是环境不行,现在环境已大为改观,那么为何我们还要守旧维护51?
远离51,珍惜生命,这是菜农的诚恳的忠告!
主题帖子积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
因为太穷,穷则思变,要干,要革命。51最大的弱点就是架构不好,资源有限,内存小,程序空间小,速度低,位数小,计算能力差。
故它比较适用于简单的计算和控制。
假若用脑桨的工作就效率很低下,故比较适用于新人的入门学习。
由于上述原因,在学习到了某个阶段后,它将很难发挥自己的创作力。
如同人穷一样,总是考虑每天的柴米油盐酱醋,那有什么潇洒的作为?
看看PC端程序员有几个考虑像MCU程序员如此精细?
故菜农认为现在是主张远离51珍惜脑桨的时候和该进入新的MCU时代了。
以前是环境不行,现在环境已大为改观,那么为何我们还要守旧维护51?
远离51,珍惜生命,这是菜农的诚恳的忠告!
主题帖子积分
资深工程师, 积分 10710, 距离下一级还需 9290 积分
资深工程师, 积分 10710, 距离下一级还需 9290 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
资深工程师, 积分 10710, 距离下一级还需 9290 积分
资深工程师, 积分 10710, 距离下一级还需 9290 积分
51我也经常用长整形和浮点。现在很多增强的51速度都比较快,没有啥不妥。
有些计算,必须得用长整形或浮点。
主题帖子积分
主题帖子积分
专家等级:结帖率:98%打赏:0.00受赏:2.00
主题帖子积分
51我也经常用长整形和浮点。现在很多增强的51速度都比较快,没有啥不妥。
有些计算,必须得用长整形或浮点。
coody 发表于
那是因为浮点的运算时间对于你 不在乎!
说的好听点 我万事略懂。其实我什么都不会。
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
51和ARM都应该避免浮点数运算,由于低功耗的原因,MCU中没有带浮点处理单元FPU。。
主题帖子积分
中级工程师, 积分 4943, 距离下一级还需 57 积分
中级工程师, 积分 4943, 距离下一级还需 57 积分
主题帖子积分
专家等级:结帖率:64%
主题帖子积分
中级工程师, 积分 4943, 距离下一级还需 57 积分
中级工程师, 积分 4943, 距离下一级还需 57 积分
因为你是初学者 所以才提出这种古怪的问题
就像小孩子问 天空为什么是蓝的一样
这样的问题看似简单 其实是很难回答的。
荣誉元老奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术领袖奖章
人才类勋章
核心会员奖章
等级类勋章
技术奇才奖章
人才类勋章
精英会员奖章
等级类勋章
奔腾之江水
发帖类勋章
时间类勋章
突出贡献奖章
等级类勋章
热门推荐 /2博客访问: 33876
博文数量: 90
注册时间:
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Linux
/**********************************************************& * 函数名:&& &&& &IsFloat&& &&& &&& &&& & &&& &&& &&& &&&&&&&&&&&& & * 机能概要:&& &&& &判断是否全为浮点型的数据& &&& &&& &&& &&& &&& &&& && *&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&& &&&&&&&& & * 参数:&& &strin&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&&& & * 返回值:&& &True&& &全为浮点型&& &&& &&& &&& &&& &&& &&& &&& && *&& &&& &&& &False&& &不全为浮点型&& &&& &&& &&& &&& &&& &&& &&& && *********************************************************/&public static boolean IsFloat(String strin)& {&&&&& &int pointNum=0;&& &&&& for( int i=0 ; i<strin.length() ; i++ ){&&&&&& c = strin.charAt (i);&&&&&& if (( c = 0x0030 ) == false)&& &&& &//是否为数字&&&&& &&& &&& &if(c==0x002e){&& &&& &&& &&& &&& &&& &&& &&& &//是否为小数点&& &&& &&& &&& &if(pointNum==0){ && &&& &&& &&& &&& &&& &//是否只有一个小数点&& &&& &&& &&& &&& &pointNum++;&& &&& &&& &&& &}else{&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &//超过一个小数点时出错&& &&& &&& &&& &}&& &&& &&& &}else{&& &&& &&& &&& &if(c!=0x002d && c!=0x002b || i!=0){&& &&& &&& &//是否为减号或加号且在最开头&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &//都不是时出错&& &&& &&& &&& &}&& &&& &&& &}&&& }&& &position=strin.indexOf(".");&& &if (position==-1)&& &if (strin.indexOf("+") == 0 || strin.indexOf("-") == 0) {&& &&& &if(position==1 || position==strin.length()-1)&& &//小数点位置在开头和末尾时出错&& &} else {&& &&& &if(position==0 || position==strin.length()-1)&& &//小数点位置在开头和末尾时出错&& &}&& &//if(position != 3)&& &//小数点两位出错&&&&& && }&& /**********************************************************& * 函数名:&&& &&& IsFloat&&& &&& &&& &&& & &&& &&& &&& &&&&&&&&&&& & * 机能概要:&&& &&& 判断是否全为浮点型的数据&& &&& &&& &&& &&& &&& &&& & *&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&& &&&&&&& & * 参数:&&& strin&&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& & * 参数:&&& int len& 数值总长度:整数位+小数位&&& &&& &&& &&& & * 参数:&&& int len2 小数点位数& * 返回值:&&& True&&& 全为浮点型且小数位数不大于len2,整数位不长于整数位& *&&& &&& &&& False&&& 不全为浮点型&&& &&& &&& &&& &&& &&& &&& &&& & *********************************************************/&public static int VhcIsFloat(String strin,int len,int len2)& {&&&&&& int pointNum=0;&&&&&& int leng = strin.length();&&& //if (strin.length() > len+2) return 1;&&& &&& //长度超长&&& for( int i=0 ; i<strin.length() ; i++ ){&&&&&& c = strin.charAt (i);&&&&&& if (( c = 0x0030 ) == false)&&& &&& //是否为数字&&&&&& &&& &&& if(c==0x002e){&&& &&& &&& &&& &&& &&& &&& &&& //是否为小数点&&& &&& &&& &&& if(pointNum==0){ &&& &&& &&& &&& &&& &&& //是否只有一个小数点&&& &&& &&& &&& &&& pointNum++;&&& &&& &&& &&& }else{&&& &&& &&& &&& &&& return 1;&&& &&& &&& &&& &&& &&& //超过一个小数点时出错&&& &&& &&& &&& }&&& &&& &&& }else{&&& &&& &&& &&& if(c!=0x002d && c!=0x002b || i!=0){&&& &&& &&& //是否为减号或加号且在最开头&&& &&& &&& &&& &&& return 1;&&& &&& &&& &&& &&& &&& &&& //都不是时出错&&& &&& &&& &&& }&&& &&& &&& }&&& }&&& position=strin.indexOf(".");&&& &&& if (strin.indexOf("+") == 0 || strin.indexOf("-") == 0) {&&& &&& strin = strin.substring(1);&&& &&& position = position == -1? position:position -1;&&& &&& leng = leng - 1;&&& }&&& if (position==-1 && leng <= len-len2 ) return 0;&&& if(leng- position - 1 > len2) {&&& &&& if (position>-1) return 2;&&& //小数点两位出错&&& &&& if (position==-1) return 3;&&& //整数超长&&& }&&& if(position==0 || position== leng-1) return 1;&&& //小数点位置在开头和末尾时出错&&& if ((position) > len -len2 ) return 3;&&& &&& return 0;& }
阅读(382) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
机动车尾气监测系统集成与信息传输.pdf63页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:200 &&
你可能关注的文档:
··········
··········
机动车尾气监测系统集成与信息传输
Integration and transmission for exhaust emission measurement and monitoring 领
域:电子与通信工程 作者姓名:郭 指导教师:刘敬浩 副教授 企业导师:李国 正高级工程师 天津大学电子信息工程学院 二零一四年十一月 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的
研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表
或撰写过的研究成果,也不包含为获得 天津大学 或其他教育机构的学位或证
书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中
作了明确的说明并表示了谢意。 学位论文作者签名: 签字日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解 天津大学 有关保留、使用学位论文的规定。
特授权 天津大学 可以将学位论文的全部或部分内容编入有关数据库进行检
索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校
向国家有关部门或机构送交论文的复印件和磁盘。 (保密的学位论文在解密后适用本授权说明)
学位论文作者签名: 导师签名:
签字日期: 年 月 日 签字日期: 年 月 日 摘 要 本文分析对比了现行的双怠速、瞬态工况、稳态工况尾气分析仪的工作原理
及其优缺点,针对目前的尾气检测设备检测精确度偏低、信息无法传输、监控手
段陈旧等问题现状,开展新型尾气分析仪的研发工作。新型仪器不仅具有双怠速
检测法简单易行、低成本的特点,而且具有瞬态工况检测法高可靠性、稳态工况
检测法操作快捷的优点。在此基础上,还进一步实现了汽柴混用机动车的尾气检
测功能。对仪器外
正在加载中,请稍后...君,已阅读到文档的结尾了呢~~
微处理器多媒体部件的设计与验证硕士论文微处理器多媒
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
微处理器多媒体部件的设计与验证硕士论文
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 c语言浮点型 的文章

 

随机推荐