C语言long double,超过有效位数之后怎么办 20
貌似longdouble和double一样,有效位数都是10位,现在要做15位数的运算(加上小数点后的四位数),应该怎么处理?请解答稍微详细一些,感激不尽。...
貌似long double 和double一样,有效位数都是10位,
现在要做15位数的运算(加上小数点后的四位数),应该怎么处理?
请解答稍微详细一些,感激不尽。 展开
现在要做15位数的运算(加上小数点后的四位数),应该怎么处理?
请解答稍微详细一些,感激不尽。 展开
3个回答
展开全部
long double,C 提供 long double 类型,目的是提供一种比 double 更加精确的类型。然而,C 标准仅仅规定 long double 至少要和 double 一样精确。对于大多数编译器,long double等于double。
C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间。其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证。
所以如果有效位数超过15位后,精度变会丢失,也就是丧失了一定的准确性。对于大多数的工程,科学计算来说,这种精度完全可以接受。
对于金融,高精密科技等需要更高精度的计算,这个时候就不能采用double类型。对于大多数高级语言,都存在大整数这一类型,这是一种模拟类型,不是严格意义上的编译类型。所以只要内存足够,它们的精度可以达到无限。
展开全部
貌似long double 和double一样,有效位数都是10位,你这句话是 输出的时候吧 有效位数不止10位输出的时候用printf("%.15f",a);来输出、谢谢采纳 望有帮助
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果数字本来就不大,可以先乘以1000(或其他数据,总是是可以保留数据精度的)然后放到string里面 最后输出的时候注意小数点的位置就可以了
如果数据真的很大 需要用大数模版
再或者你面临的问题可能有其它优良算法,问一下别人的算法。
如果数据真的很大 需要用大数模版
再或者你面临的问题可能有其它优良算法,问一下别人的算法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询