搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ double数据类型遇到的问题
标题:
double数据类型遇到的问题
只看楼主
你爸边哭边
等 级:
新手上路
帖 子:39
专家分:0
注 册:2017-10-30
结帖率:
66.67%
楼主
已结贴
√
问题点数:18 回复次数:9
double数据类型遇到的问题
编程是遇到这个double类型数据的有关问题
#include<stdio.h>
void main()
{
double a=2;
for(int i=0;i<100000;i++)
{
a=a-0.001;
if(a==0)
printf("yes");
}
}
结果并不会显示yes,这个问题该怎么解决呢
[此贴子已经被作者于2019-7-16 21:17编辑过]
搜索更多相关主题的帖子:
double
数据类型
int
i++
结果
2019-07-16 20:24
星i辰
等 级:
论坛游民
威 望:
1
帖 子:35
专家分:18
注 册:2016-11-1
第
2
楼
得分:5
a-0.001循环10次,也就是2-0.01,a不等于0,当然不输出yes
2019-07-16 20:28
吕孟伟
等 级:
贵宾
威 望:
27
帖 子:200
专家分:870
注 册:2018-10-4
第
3
楼
得分:5
当然不会出现yes, 经过10次相减0.001,最后一个a值是1.990000.
借用一下侯捷的话:勿在浮沙筑高台。
2019-07-16 20:30
你爸边哭边
等 级:
新手上路
帖 子:39
专家分:0
注 册:2017-10-30
第
4
楼
得分:0
回复 2楼 星i辰
改成1000000也打印不了
2019-07-16 21:16
你爸边哭边
等 级:
新手上路
帖 子:39
专家分:0
注 册:2017-10-30
第
5
楼
得分:0
回复 3楼 吕孟伟
改了也打印不了
2019-07-16 21:23
你爸边哭边
等 级:
新手上路
帖 子:39
专家分:0
注 册:2017-10-30
第
6
楼
得分:0
感觉double类型跟0比较有问题
2019-07-16 21:35
wufuzhang
来 自:广州
等 级:
贵宾
威 望:
21
帖 子:206
专家分:1346
注 册:2017-8-9
第
7
楼
得分:5
好像是浮点数不能表示绝对的0,只能用一个小数位数非常多的无限接近0的数来近似等于0,
用int型数据就可以表示绝对的0
不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-07-16 23:36
c小白2333
来 自:中国
等 级:
贵宾
威 望:
11
帖 子:121
专家分:367
注 册:2019-6-17
第
8
楼
得分:5
7楼正解
double 类型 数值无法准确确定
所以a 无论如何不会等于0
宝剑锋从磨砺出,梅花香自苦寒来。
2019-07-17 20:29
c小白2333
来 自:中国
等 级:
贵宾
威 望:
11
帖 子:121
专家分:367
注 册:2019-6-17
第
9
楼
得分:0
想要输出 yes 只有 将数值强制转换成int型
宝剑锋从磨砺出,梅花香自苦寒来。
2019-07-17 20:30
你爸边哭边
等 级:
新手上路
帖 子:39
专家分:0
注 册:2017-10-30
第
10
楼
得分:0
谢谢各位了
2019-07-18 14:21
10
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-495890-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.189852 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved