首页 >>  正文

double输出时为什么用+f

来源:baiyundou.net   日期:2024-07-07

荀舍须2200在c环境中,定义t为double型的,t=1/2,用printf输出显示时为何答案是0.00000? -
赫详胡15631154958 ______ 1和2都是整数,编译器会把1/2当作1整除2,商是整数,结果为0.a=1/2;这行可以改成下面任意一种形式,就能输出正确结果了:a=1f/2; a=1/2f; a=1f/2f; f或者F是浮点数(float)常量后缀,1f是一个浮点型常量,和整型常量5是不同的概念.只...

荀舍须2200为什么double会有精度损失??? -
赫详胡15631154958 ______ 因为C++的标准输出默认保留6位有效数字.你cout.precision(12);然后再输出看看. 当然double肯定是会有精度损失的,只不过不会那么几位就开始损失而已.对于所有实数完全没有精度损失需要无限位的空间,所以是不可能的啦.

荀舍须2200输入double变量, 计算后输出double有问题. -
赫详胡15631154958 ______ 问题出在:scanf("%d %d",&u,&i);double的格式说明符是%lf,%d则表示是整型,因为double和int在内存中存放的格式不同,所以按整型写入之后按double处理就得不到正确的值了另外,jisuan(double r,double i)最好写成double jisuan(double r,double i),虽说有些编译器能够自动判断,但还是建议写完整

荀舍须2200关于flaot和double输出为什么会不同 -
赫详胡15631154958 ______ float与double都是浮点类型,浮点类型的表示方法可参见IEEE754标准,其采用的是二进制的浮点表示法,不能精确表示所有的10进制浮点数,只能确保有限的精度位,float是6.5位,double是15.5位.超过精度的且不能被精确表示的浮点数将会造成误差.具体来说,像1/3这样的小数,其精度可以是无限的,浮点类型就不能精确表示.建议少用float,其精度位数太少,造成误差的可能性很大,同时并不会有较大的性能提升(尤其是使用x87指令).

荀舍须2200C语言, float double输出不一样,求大神 -
赫详胡15631154958 ______ 当然不一样啦,单精度(float),双精度(double). 它们可以接收的实型常量的有效数字位数是不同的. 就是说,double型可以接收实型常量的16位的有效数字,但是float只能就收实型常量的7位有效数字,在有效数字后输出的数字都是不准确的.

荀舍须2200定义数据类型为double,双精度,输出时也是double型输出,为什么小数点后位数只有六位啊?求 -
赫详胡15631154958 ______ %f和%lf都是默认输出6位小数,并不代表double类型的精度只有6位小数 如果需要多输出,强制指定就可以了 例如 printf(".12lf\n",a); 就可以输出12位小数了

荀舍须2200C++中double型数值计算结果为0为什么输出的不是0? -
赫详胡15631154958 ______ 这是由于double类型的精度引起悔启册的旁卜.在C/C++中,float和double类型,被称为浮点型.浮点型是C/C++中用来存储实数的.而存储的值,并不是实际值,而是近似值.即,double类型和float类型存储的值均不是准确值,而是一个和准确值接近的值.这样,在计算中,就会有精度缺失的情况出现,运算越多,这个精度缺失出现的概率越大.当经过大量计算后,就可能出现结果与真实结果偏差比较大的情况,也就是实际获得的结果并不准确.碧宏

荀舍须2200这个最简单的c语言程序为什么输出结果是0呢? -
赫详胡15631154958 ______ 因为你定义的main主函数为空,无返回值,而你的代码返回值是0.可以在main()前面加个int ,或者去掉return 0

荀舍须2200C语言:如果m=7 为什么用double 输出 m%3的答案会是0.000000 -
赫详胡15631154958 ______ 因为m是整型,m%3的结果也是一个整型的数,如果用%lf去对应显示,结果是不正确的,因为不匹配,对应不上.如果一定要用lf显示,必须要增加显式的类型转换,如: int m=7; printf("%lf",(double)(m%3)); system("pause");

荀舍须2200C语言 double不是说不能与0比较么,下面为什么可以有输出 -
赫详胡15631154958 ______ 如果某一变量是double类型或float类型,才需要你说的那样.因为double类型或float类型都是有精度的,其实都是取的近似值,所以有个误差.和一个很小的数比如0.00000001比较就是为了在这个误差范围内进行比较. 举个例子如double b = 0.123456可能是0.1234561的四舍五入后得到的结果.最后的0.0000001就表示误差范围了. doubel a; if ( a>-0.0000001 && a< 0.000001 )对. 而 if( a == 0 )不对! 二、如果是某一变量是int类型,就不需要那样了. 如 int a; 可直接使用 if( a == 0 ) 正确!

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024