永发信息网

我想知道double型不是16个有效数字么,为何这里只有俩个

答案:3  悬赏:20  手机版
解决时间 2021-11-22 15:54
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-11-22 02:54
我想知道double型不是16个有效数字么,为何这里只有俩个
最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-11-22 04:34
是的,在编译器上输出是1.000000,书上估计是省略了

追问等等,float型是7位,double是16位,怎么回事,计算机怎么显示的是7位,追答这跟他的机制有关系,浮点数中分三部分,尾数符号为,阶码和尾数,尾数即是他的有效位数,学到计算机组成原理的时候会有讲。追问嗯,好的,那现在我想确定一下float个doubke型在实际答题中要保留的有效数字是多少位追答默认的情况是6位小数,但是如果输出格式有说明的话就另当别论了,比如printf("%1.5f", a);这样的就明确保留小数点后5位,.后面的数字是小数的位数。追问嗯,thanks
全部回答
  • 1楼网友:荒野風
  • 2021-11-22 07:11
10%3结果为余1 强制转换之后默认会删除多余的零 除非你规定输出格式追问删除多余的只留一个么?追答恩 可以使用格式化输出比如规定小数位数来达到要求效果 默认就是只留一个追问float,longdouble也是么
  • 2楼网友:白昼之月
  • 2021-11-22 05:37

# include

int main()

{

printf("%lf ",(double)(10%3));

return 0;

}

直接输出给你看一下哈

人家书上这样写,只是为了你看着方便,就别难为人了。。。

追问,,float和double型有效数字一个是7一个是16,那在计算机上怎么变了追答这是编译器造成的,单精度与双精度都只输出小数点后6位。。追问小数点后都保存6位,还是有效数字都是7追答额,不说了是编译器的问题么,你又不是不知道它的有效数字是几位,这么较真。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯