C语言中表达式1.0\/3*3的值是
1.0\/3按照单精度计算只保证小数点后面的前6位是有效位数(精度是6),所以计算结果是0.333333,0.333333*3=0.999999。不过在机器上运行的结果是1.000000。书上讲的只是理论计算的结果,在机器上运行有可能不同。
1.0\/3*3 c语言的问题
由于1.0是浮点型,所以在计算时,“1.0,3”被转换为double型,即得到的结果是double型 得到的结果是0.999999999999999,有 15位有效数字 在输出时,用%f格式,只输出6位有效数字,所以结果输出1.000000
[c语言]printf("%f\\n",1.0\/3*3)与printf("%f\\n",1\/3*3)计算结果为什么不...
1.0\/3*3这是按浮点数进行计算,1.0\/3*3=0.333333...*3=1 1\/3*3这是按整数进行计算,1\/3*3=0*3=0 (1\/3的值会先取整,结果为0)
c语言中1.0\/3*3为什么等于1
所以1.0\/2=0.5 0.5*3=1.5
[c语言]1.0\/3*3 结果不等于1? 怎样才能等于1?
这个问题我以前问过,不一定等于1的,大多 编译器 是这样算的:1.0\/3=1.33333333333333333333;(它对超出精度部分舍去)0.333333333333333333333333*3=0.9999999999999999999999999;于是就不等于1了 但我用过的有一个编译器就能让这个结果为1.00000000000000000000,貌似是对超出精度的部分四舍五入了...
[c语言]1.0\/3*3 结果不等于1? 怎样才能等于1?
这个值应该会等于1的.在TC在编译,为了避免这种情况可以用笨一点的办法:(1.0\/3+0.000003)\/3 加上0.000003应该不会对以后的数据引起太大的麻烦,这个值不应过大,也不能太小,0.000002或者0.000003都行吧.--- 基本上来说这个表达式是否等于1,跟编译器相关....
c语言中d=1\/3*3.0;与d=1.0\/3*3;d=?有什么区别
d=1\/3*3.0;这时d=0,d=(1\/3)*3.0,这里1是整形,1\/3也是整形,等于0,所以0*3.0=0 d=1.0\/3*3;这时d=1,d=(1.0\/3)*3,这里1.0是浮点型,1.0\/3也是浮点型,等于0.333333再乘以3等于1.
[c语言]printf("%f\\n",1\/3*3)与printf("%f\\n",1\/3*3)计算结果为什么不同...
从你后续的说法上看,应该是1\/3*3和1.0\/3*3 区别就在于类型 1\/3,两个都是整数,结果也是整数,也就是int型 于是结果取整,1\/3值为0,再乘3,结果依然为0 而1.0是double类型,除以3结果还是double类型,值是0.333333,再乘以3,就又恢复回1了 ...
计算机c语言,表达式1234==1234\/3*3 答案为
C语言中,整数除以整数只能等于整数,而且在C语言中,像1234这种的数值默认都是int类型的,1234\/3 = 411,不等于411.33333...
C语言中实型数据运算的问题!如图:a=1.0\/3*3b=3\/2c=1\/3*3为什么产生这样...
2、”a=1.0\/3*3b=3\/2c=1\/3*3"……额的神哪,这也太有想象力了吧?"=“是赋值号,将右边的值赋给左边,楼主是要让编译器解方程?你高估人家了...由于没图片,也没具体说明,我也不清楚这玩意儿是什么意思,只能讲到这儿了。建议楼主不仅要仔细看书,还要多写程序,写错了琢磨琢磨、试着...