double和float精确度问题

我控制台输出(10000.0/3.0)结果为3333.333333333335共18个字符但是double精度是15位啊,我将它转化为float结果为3333.3333但是float的精度是6-7位为什么会这样,新手求解

2个回答

精度没问题,是你的输出函数默认以几位输出。比如printf函数。你可以给定精度输出的。比如printf("%.6f")就是输出小数点后6位,希望对你有帮助,希望采纳(⊙o⊙)哦

qq_27966627
零碎梦颜 谢谢,明白了
4 年多之前 回复

double的精度和输出的10进制方式的精度没有任何关系。这里说的double float的精度是指它的有效精度。以你的程序为例,它输出
3333.333333333335,很明显最后一位5已经不是有效数字了,它的有效数字是15位,和你的结论是一样的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐