1楼:匿名用户
好吧,这道题太让我好奇了,一看没人回答,我自己试了一下。
一样的程序,我用vc6.0输出0。。。我就不截图了。
看来和编译器有关。。。
2楼:匿名用户
我不能肯定,但是我认为这取决于编译器的实现,他估计是看见乘法就直接就进行符号位乘法,即正正为正、负负为正、正负为负,以此修改结果的符号位,输出时查看符号位,如果符号位为1,则必定输出“-”,这样就会出现你看到的情况了,当然只是我的猜想。。。换句话就是我认为这是程序设计的结果。
c++中double型数值计算结果为0为什么输出的不是0?
3楼:龍__鳳
#include
#include//加上头文件
usingnamespacestd;
voidmain()
4楼:匿名用户
这是由于double类型的精度引起的。
在c/c++中,float和double类型,被称为浮点型。
浮点型是c/c++中用来存储实数的。而存储的值,并不是实际值,而是近似值。
即,double类型和float类型存储的值均不是准确值,而是一个和准确值接近的值。
这样,在计算中,就会有精度缺失的情况出现,运算越多,这个精度缺失出现的概率越大。
当经过大量计算后,就可能出现结果与真实结果偏差比较大的情况,也就是实际获得的结果并不准确。
5楼:匿名用户
#include
#include
using namespace std;
void main()
6楼:匿名用户
cout<< (fabs(n-0.0)<1.0e-3)< c++,用double型变量进行运算,结果应该为0,但是输出是—0.000000,我考虑应该是do
50 7楼:gta小鸡 定义一个极小的量作为阈值,当浮点型减去其强制转换后的整型的绝对值小于这个阈值时,认为浮点型值等于该整型。例: #define zero 1e-12 double example; if(example-(int)example1-zero) example=(int)example+1; 8楼:匿名用户 double显示就是带小数的,不会显示0的,自己控制输出格式呀。你的考虑那个叫浮点型的舍入误差 9楼:黑贝天枰 强制类型转换为int型 c++中相等的两个double数值相减为什么输出的不是0? 10楼:糖糖寳寳 1、因为double类型都是1.*********(若干个0和1,二进制)乘以2的若干次幂来表示一个数,所以,和十进制的小数势必不能够一一对应,因为位数有限,总要有一个精度(两个数之间的实数是任意多的,但是很明显double不可能表示任意多的数),那么double的0就只是用一个近似0的数来表示的 2、浮点数比较相等的时候,不能用==比较,要采用if(abs(x-y)<=epsilon)的方式,其实epsilon是预定义的很小的数,也就是要求的精度,比如类似1e-6,也就是说,比较两数之间的差是否在可接受的精度范围内。 3、和0比较,就是if(abs(x)<=epsilon),绝对值小于要求精度,就可以认为是0. 11楼:匿名用户 浮点数精度不准确,不能对浮点数进行精确的比较操作,如要一定要用浮点进行比较,可用 fabs(n-0.0)<1.0e-3; 保证在精度范围; 12楼:匿名用户 #include #include #include using namespace std; void main() c++ double 可以表示负数吗? 13楼:匿名用户 double类型的取值范围: 负值取值范围为 -1.79769313486231570e+308 到 -4.94065645841246544e-324 正值取值范围为 4.94065645841246544e-324 到 1.79769313486231570e+308 所以,很明显double 可以表示负数 为什么c++执行不了,无论怎么输负数,输出结果都是负数的个数为0啊 14楼:匿名用户 你这是java不是c++... 不管是java还是c++,double类型最好不要直接用操作符来比较,要调用函数 c++ 中double数据的一个表达式,计算结果为0,但是用cout输出为8.88178-016,这是为什么啊?怎样才能显示0 15楼:芭拉绝舞 这个结果很好啊,无限趋向0了,如果你要好看一点儿,可以int强制转换一下 16楼:匿名用户 应该是你最初没有给这个double数据赋初值吧,如没有赋初值的话,你的运算结果就很可能是上面的结果。因为在你定义这个double数据的时候(未赋初值时)此时的这个数据是个随机数。 17楼:油哥来了 你把你写的**发过来。 c++中定义的变量为double型,为什么输出的数值总是不正确这是为什么,**如下 18楼:山水阿锐 您好,您试试这个: sum = sum+(1.0/num); joychen_ 如果不成,再试试: num的类型改为double yy_神_eeee 19楼:yy_神 num的类型改为double