永发信息网

1.0/3*3 c语言的问题

答案:6  悬赏:80  手机版
解决时间 2021-04-02 14:25
  • 提问者网友:戎马万世
  • 2021-04-02 07:55
1.0/3*3 c语言的问题
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-04-02 08:05
这个问题是关于不同类型数据间混合运算的问题,
由于1.0是浮点型,所以在计算时,“1.0,3”被转换为double型,即得到的结果是double型
得到的结果是0.999999999999999,有 15位有效数字
在输出时,用%f格式,只输出6位有效数字,所以结果输出1.000000
全部回答
  • 1楼网友:佘樂
  • 2021-04-02 11:46
双精度型有效数位是16位,但C++规定小数点后至多六位,其余的四舍五入
  • 2楼网友:从此江山别
  • 2021-04-02 10:53
答案应该是“1.000000”会四舍五入。
  • 3楼网友:青灯有味
  • 2021-04-02 10:05
c在64位和32位的操作系统下得到的数据时不同 %f表示单精度浮点数 保留小数点后面6位数
  • 4楼网友:woshuo
  • 2021-04-02 08:51
会四舍五入,例如程序改为
#include
void main()
{
printf("%f\n",0.999999999999);
}
输出的依然是1追问那么为什么网上其他人运行却是0.9999999呢?不是会四舍五入吗?追答你试试%lf应该没问题的,或者不改变%f输出,但是把1·0改为1·0f。因为你这里用%f输出,实际计算机做了类型转换。double以float输出,精度丢失。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯