社区
C语言
帖子详情
float 怎么就近似成0了
「已注销」
2018-01-29 08:43:48
按照浮点数表出不应该是0.666666吗,虽然浮点数会损
失精度但也不至于直接成0吧
...全文
628
3
打赏
收藏
float 怎么就近似成0了
按照浮点数表出不应该是0.666666吗,虽然浮点数会损失精度但也不至于直接成0吧
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sfzhaolv
2018-01-29
打赏
举报
回复
1
这里发生了隐式类型转换 a 是int ,3也是整形,所以 (a/3)运算的结果,c++规定为int。 b=a/3.0;改为 这样就对了。 更详细的只是,楼主请看 c++primer 隐式类型转换这一节
大米粥哥哥
2018-01-29
打赏
举报
回复
两个整数相除结果还是整数 然后把整数存到一个浮点数变量中 其中一个为浮点数 则结果也为浮点数
paschen
2018-01-29
打赏
举报
回复
你这里进行的是整数除法,所以结果是0,你要浮点数除法的话写成:b=a/3.0f; 或者 b=(float)a / 3;
11.1.4 浮点类型(
近似
值)-
FLOAT
,DOUBLE
官方文档地址:11.1.4
Float
ing-Point Types (Approximate Value) -
FLOAT
, DOUBLE
FLOAT
和DOUBLE类型用来表示
近似
的数值数据。MySQL 使用4个字节表示单精度值,8个字节表示双精度值。 对于
FLOAT
,标准 SQL 允许在关键字
FLOAT
后面的圆括号中指定位的精度(但是不是位数的取值范围);也就是说
FLOAT
(p)。MySQL 也支持这个可选的精度规范,但是
FLOAT
(p)中的精度值仅用于确定存储大小。精度为0到23会产生一个4字节的单
mysql 浮点_mysql8 参考手册--浮点类型(
近似
值)-
FLOAT
,DOUBLE
FLOAT
和DOUBLE类型表示
近似
的数值数据值。MySQL使用4个字节表示单精度值,使用8个字节表示双精度值。对于
FLOAT
,SQL标准允许在括号中的
FLOAT
关键字后面的位中指定精度(而不是指数的范围);即
FLOAT
(p)。MySQL还支持这个可选的精度规范,但是
FLOAT
(p)中的精度值仅用于确定存储大小。从0到23的精度将产生4字节的单精度浮点列。从24到53的精度将产生8字节的双精度双列...
mysql
float
误差_mysql
float
精度与范围总结
FLOAT
类型用于表示
近似
数值数据类型。SQL标准 允许在关键字
FLOAT
后面的括号内选择用位指定精度(但不能为指数范围)。MySQL还支持可选的只用于确定存储大小的精度规定。0到23的精度对应
FLOAT
列的4字节单精度。24到53的精度对应DOUBLE列的8字节双精度。单精度浮点数用4字节(32bit)表示浮点数采用IEEE754标准的计算机浮点数,在内部是用二进制表示的如:7.22用32位二...
c语言中
float
、double类型与整数0相比较
c语言中
float
、double类型与实数与0相比较
float
是浮点数 存的是
近似
值 而== 只要不是完全相等 就回是假 于是 用==判断
float
有可能出错。 一般都是判断差值的绝对值,低于某一个精度值,就可以认为是相等了。 代码证明: #include<stdio.h> void main() {
float
a=1e-100; if(a==0) { printf("a不等于0\n"); } return; } 执行结果:a不等于0 既然不能与0比较,那么要怎么选取比较量呢
浮点数判断为0或者相等
浮点数不能像整形那样直接用 if(a==b) 这样来进行条件判断,因为浮点数用
float
或者double是不精确的表示。
float
精确到小数点后6位 double精确到小数点后15位 所以,也就是说,如果一个
float
小于0.000001,我们就不知道是否为有效的了,也可以认为
近似
为0了。 同理一个double的有效范围为1e-15,小于1e-15的double类型我们就可以认为
近似
为0
C语言
69,372
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章