概述
C语言Double类型数据保证精度问题
我用手算算出的数据为-1.35323517,但是在C语言里面为了保证数据精度,VC++运行的结果为-1.35323517024517 ,按说应该在-1.35323517后面补零,但是补的却是024517 ,补上这几位会严重影响我最后的计算结果,怎么样才能让其后面补零而不是024517呢 ,请各位高手指点一下、、
Visual C++
double类型数据精度
------解决方案--------------------
用定点数, 不要用 double.
浮点数对某些十进制数是无法表示的, 只能用一个最接近它的值来表示.
------解决方案--------------------
差这么多?应该中间转过float或者计算次数太多,不然double不会有这么大误差
------解决方案--------------------
是不是用 int 得看你要表示的数的范围.
用 BCD 码是 4 个 bit 表示一个十进制数. 所以, 使用 int, 保留 2 位小数的话, 范围就是 0.00 ~ 999999.99
------解决方案--------------------
引用:计算过程我定义的每个变量都是double类型的,而且是 第一次计算的时候就出现了、、
不应该把,要不就是数据数量级差太多,把代码贴上来看看?
------解决方案--------------------
用10进制小数不能精确表示某些三进制小数0.1(3)=0.33333333333……(10)
同理,用二进制小数也不能精确表示某些10进制小数。
最后
以上就是舒心钢铁侠为你收集整理的c语言中数据精度发生错误,C语言Double类型数据保证精度有关问题的全部内容,希望文章能够帮你解决c语言中数据精度发生错误,C语言Double类型数据保证精度有关问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复