处理C语言中数据精度问题的方法

    作者:课课家教育更新于: 2016-12-16 15:27:09

    大神带你学编程,欢迎选课

      一般来说,我们在进行软件开发的时候都需要进行数据精度的。数据精度(DataAccuracy),指的是:观测值与真值或可看作是真值的逼近程度。那么我们在C语言中遇到数据精度的问题,应该怎样去进行处理呢?现在我们就一起来学习一下:处理C语言中数据精度问题的方法。

    处理C语言中数据精度问题的方法_C语言_数据精度_编程代码_课课家

      一、错误演示

      在教程开始之前,小编先给大家看一个例子吧。但是大家要注意咯,这个演示例子并不是正确的。具体的编程代码,如下图:

    错误演示

      那么上面的编程代码经过C语言编译以后,运行出来的结果如下:

      $0.100001

      $

      二、问题分析

      可能大家都应该发现了上面的程序是有问题的了,那么问题究竟出现在哪里呢?有人会和小编会,一定是atof函数导致的问题。为了验证答案的正确性,小编就把atof(s)替换成为了strtod(s,NULL)。但是小编发现就算是把函数替换了以后,运行出来的结果还是和刚刚的示范例子的答案是一模一样的。

      那么问题究竟是什么呢?经过小编反反复复的测试以后,终于发现了问题并不是strtod又或者是atof函数转换的时候精度丢失了,反而是%f的格式化输出符默认的输出为小数点后面6位的精度。好了我们已经知道错误出现在哪里了,现在我们就一定来将错误改正吧。

      三、正确答案

      接下来小编会把刚刚错误例子里面的代码修改成为下面的程序代码,具体的源代码如下图:

    正确答案

      编程代码经过C语言编译以后,运行出来的结果如下:

      $0.100001200

      $

      经过以上两个例子,大家可以发现最终运行出来的结果还是有不同之处的,所以大家一定要注意咯!

      小编结语:

      今天我们主要是学习了“处理C语言中数据精度问题的方法”,其实数据精度的问题还是经常会碰到的,所以大家一定要小心处理哟!今天的教程就已经介绍完毕了,如果你还是与犹未尽,可以进入我们的官网课课家教育,了解更多的C语言入门教程

C语言 更多推荐

课课家教育

未登录