C语言long double,超过有效位数之后怎么办 20

貌似longdouble和double一样,有效位数都是10位,现在要做15位数的运算(加上小数点后的四位数),应该怎么处理?请解答稍微详细一些,感激不尽。... 貌似long double 和double一样,有效位数都是10位,
现在要做15位数的运算(加上小数点后的四位数),应该怎么处理?
请解答稍微详细一些,感激不尽。
展开
 我来答
tattackor
推荐于2017-09-07 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:897万
展开全部
  1. long double,C 提供 long double 类型,目的是提供一种比 double 更加精确的类型。然而,C 标准仅仅规定 long double 至少要和 double 一样精确。对于大多数编译器,long double等于double。

  2. C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间。其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证。

  3. 所以如果有效位数超过15位后,精度变会丢失,也就是丧失了一定的准确性。对于大多数的工程,科学计算来说,这种精度完全可以接受。

  4. 对于金融,高精密科技等需要更高精度的计算,这个时候就不能采用double类型。对于大多数高级语言,都存在大整数这一类型,这是一种模拟类型,不是严格意义上的编译类型。所以只要内存足够,它们的精度可以达到无限。

leafallen
2012-08-24 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1169
采纳率:50%
帮助的人:1218万
展开全部
貌似long double 和double一样,有效位数都是10位,你这句话是 输出的时候吧 有效位数不止10位输出的时候用printf("%.15f",a);来输出、谢谢采纳 望有帮助
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
开个玩笑别当真
2012-08-24 · TA获得超过462个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:142万
展开全部
如果数字本来就不大,可以先乘以1000(或其他数据,总是是可以保留数据精度的)然后放到string里面 最后输出的时候注意小数点的位置就可以了
如果数据真的很大 需要用大数模版
再或者你面临的问题可能有其它优良算法,问一下别人的算法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式