首页 > 用户发贴区 > 编程问题提问区 > 菜鸟的一个基础问题
2008
10-15

菜鸟的一个基础问题

一个实数为什么会在计算与存储时有一些微小的误差,原来一个为0的数怎么会由于这个误差被判别为非0呢?例如:


       编程中判断一个方程的b*b-4ac是否为0,要用fabs()<1e-6来判断!而不能用


if(b*b-4ac==0)判断?


菜鸟的一个基础问题》有 7 条评论

  1. xiaoli112 说:

    没人能给我答案吗???天啊!!!

  2. s9y9r9 说:

    别急啊!我来给你答案!

  3. 稻中稻稻 说:

    float

    的有效数字只有7位~

     

  4. xiaoli112 说:

    能举个例子计算吗?只一句话我还是不懂!

    最好能讲讲细节:比如从物理地址中存储到读取计算的详细示意图!

    多谢了!!!!!!!!!!

  5. xiaoli112 说:

          多谢稻中稻稻与s9y9r9的帮助,现在我突然自己想到了一个例子:1-1/3*3这个式子应该不会被判别为0!

           有人能帮着在程序软件里试试吗?在网吧不方便!太穷了!!!

  6. Perfect 说:

    [QUOTE=xiaoli112]

          多谢稻中稻稻与s9y9r9的帮助,现在我突然自己想到了一个例子:1-1/3*3这个式子应该不会被判别为0!

           有人能帮着在程序软件里试试吗?在网吧不方便!太穷了!!!

    [/QUOTE]

    1-1/3*3!=0

  7. xiaoli112 说:

    多谢perfedt的帮助!以后多多关照!!

留下一个回复