double显示就是带小数的,不会显示0的,自己控制输出格式呀。你的考虑那个叫浮点型的舍入误差
我不能肯定,但是我认为这取决于编译器的实现,他估计是看见乘法就直接就进行符号位乘法,即正正为正、负负为正、正负为负,以此修改结果的符号位,输出时查看符号位,如果符号位为1,则必定输出“-”,这样就会出现你看到的情况了,当然只是我的猜想。。。换句话就是我认为这是程序设计的结果。
1 创建文件在CodeBlocks创建一个C语言程序 2 打开main文件双击打开main.c文件 3 写出输出代码写出printf输出代码 4 设置输出格式在括号中用%lf设置格式即可输出double类型
代码:当用%d去读double类型数据时,得到的为零,因为int型只取低32为付给整型变量,item=1.000000时转化成int型为0 1#include<stdio.h>2intmain()3{4inti,j,n;//item,s;5doubleitem,s;//当用%d去读double类型数据时,得到的为零,6//因为int型只取低32为付给整型变量,item=1.000000时转化成int型为07scan...
scanf函数对double输出一直为0 只看楼主 收藏 回复 参谋本部 低能力者 5 求帮助 参谋本部 低能力者 5 最后定位到scanf函数这一行了 Day 18 小吧主 10 如果scanf里面是%1f,改成%1lf 登录百度账号 下次自动登录 忘记密码? 扫二维码下载贴吧客户端 下载贴吧APP看高清直播、视频! 贴吧页面意见反馈 违规...
这是由于double类型的精度引起的。在C/C++中,float和double类型,被称为浮点型。浮点型是C/C++中用来存储实数的。而存储的值,并不是实际值,而是近似值。即,double类型和float类型存储的值均不是准确值,而是一个和准确值接近的值。这样,在计算中,就会有精度缺失的情况出现,运算越多,这个精度...
为什么我把X,Y定义成double型的时候,输出都是0, 只看楼主 收藏 回复 怒人水瓶 便当 3 怒人水瓶 便当 3 改成float或者int数据类型就可以获得正确的值,为什么呢?求大佬解惑 light 麻婆豆腐 11 有任何问题可以来有大神免费解答登录百度帐号 下次自动登录 忘记密码? 扫二维码下载贴吧客户端 下载贴吧APP看...
double型必须以%lf读入,输出仍然是%f。
如果某一变量是double类型或float类型,才需要你说的那样。因为double类型或float类型都是有精度的,其实都是取的近似值,所以有个误差。和一个很小的数比如0.00000001比较就是为了在这个误差范围内进行比较。举个例子如double b = 0.123456可能是0.1234561的四舍五入后得到的结果。最后的0.0000001就...
ans/=2.0*a;printf("%.2lf\n",ans);return0; }if(b*b-4*a*c>eps) {if(a<=eps) {printf("%.2lf\n",-c/b);return0; } double ans=-1*b+sqrt(b*b-4*a*c); ans/=2.0*a; double ans2=-1*b-sqrt(b*b-4*a*c);