青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-4  評論-40  文章-117  trackbacks-0

林銳博士在《高質量C++編程指南》中說過:“不可將浮點變量用“==”或“!=”與數字比較,應該設法轉化成“>=”或“<=”此類形式”,因為那是“隱含錯誤的寫法”。應該設法轉化成下面這樣的寫法:

-------------------------------

const float EPSINON = 0.00001;            //精度限制

if((x >= -EPSINON) && (x <= EPSINON))    //表示x為“零值”

-------------------------------

剛看到的時候沒太在意,因為感覺平時編程極少會遇到要比較兩個浮點值是否相等的情況。后來得空一想,又想不明白這樣寫為什么是錯的。正巧Wayne過來串門,問他一下,結果他也不太清楚。那好吧,不知道原因,那就先寫個程序試一下吧,看到底是不是錯誤寫法:

-------------------------------

#include <iostream>

using std::cout;

using std::endl;


int main()

{

  double ff = 3;

  double aa = 3.6;

  double tmp = aa / 1.2 - ff;

  if (tmp != 0)

  {

    cout << "1" << endl;

  }

  else

  {

    cout << "2" << endl;

  }

  return 0;

}

-------------------------------

在我們看來,上面程序的輸出結果應該是2的,但是很遺憾,結果是1。——我在Cygwin中用g++(gcc版本為3.4.4)測試時就是這個結果,但是用VC6.0測試時就是輸出2了。可見這種寫法不能保證一定正確,果然是隱含錯誤啊。再來試試林銳博士的辦法:

-------------------------------

#include <iostream>

using std::cout;

using std::endl;


int main()

{

  double ff = 3;

  double aa = 3.6;

  double tmp = aa / 1.2 - ff;

  if (tmp < 1e-9999999999999999 && tmp > -1e-9999999999999999)

  {

    cout << "1" << endl;

  }

  else

  {

    cout << "2" << endl;

  }

  return 0;

}

-------------------------------

這下正確了。但是精度最多可以到多少呢?根據我的測試,在上面的if語句中不論寫多少個“9”都不會有問題,只要不超出編譯器所約束的一行中最大字符數限制就可以了。我用Cygwin中的g++(gcc版本為3.4.4)測試的時候最多寫了307209也沒有問題,不知道后面到底還可以加多少;但把這個源文件用VC6.0打開時就不行了,提示說“這個文件包含最大2048個字符的長行。行將換行。”,編譯自然也是通不過的了。

現在再想想就明白前一種寫法為什么不對了,在計算機組成原理中我們學過計算機對浮點數的記錄和處理方法。在一系列地計算過程當中,總是少不了“對階”的操作,這就引入了計算精度的問題。所以就有很多我們人類看著是相等的東西,給計算機看就不等了。

posted on 2008-03-12 17:13 李陽 閱讀(664) 評論(0)  編輯 收藏 引用 所屬分類: C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲乱码一区二区| 国产香蕉97碰碰久久人人| 国产午夜精品全部视频播放| 在线中文字幕不卡| 在线观看一区二区视频| 亚洲午夜精品17c| 亚洲午夜伦理| 国产色综合天天综合网| 欧美成人第一页| 欧美精品1区2区| 日韩一区二区精品葵司在线| 一本色道久久综合亚洲精品按摩| 欧美午夜一区| 久久久精品tv| 欧美a级在线| 亚洲欧美日韩精品久久| 久久久久久久综合日本| 日韩视频免费在线| 午夜亚洲性色福利视频| 在线观看一区视频| 亚洲婷婷综合久久一本伊一区| 国产在线麻豆精品观看| 亚洲经典在线看| 欧美日韩美女一区二区| 午夜精品成人在线| 欧美国产91| 久久九九国产| 欧美少妇一区| 欧美激情久久久久| 欧美性一区二区| 欧美成人小视频| 国产伦一区二区三区色一情| 亚洲激情综合| 伊人久久大香线| 亚洲欧美一区二区三区在线| 亚洲狼人精品一区二区三区| 欧美自拍偷拍午夜视频| 亚洲欧美日韩直播| 欧美激情va永久在线播放| 久久婷婷国产麻豆91天堂| 国产精品豆花视频| 亚洲国内欧美| 18成人免费观看视频| 亚洲专区一区| 一区二区三区视频免费在线观看| 久久全国免费视频| 久久九九99视频| 国产欧美综合在线| 亚洲一二区在线| 亚洲少妇在线| 欧美日本一区| 亚洲精品国产系列| 亚洲国产成人porn| 久久青草欧美一区二区三区| 久久香蕉国产线看观看网| 国产视频久久久久久久| 亚洲香蕉伊综合在人在线视看| 一区二区三区免费在线观看| 欧美国产精品一区| 亚洲国产日韩一区| 日韩午夜一区| 欧美日韩一区二区三区免费看| 亚洲欧洲日韩在线| 99综合在线| 欧美人与禽猛交乱配| 亚洲精品一区中文| 亚洲午夜高清视频| 国产精品入口尤物| 亚洲欧美日韩中文在线制服| 亚洲自拍电影| 先锋影音国产一区| 久久亚洲精品视频| 亚洲婷婷免费| 国产日韩欧美电影在线观看| 亚洲欧美变态国产另类| 欧美激情一区二区三区在线视频| 免费欧美在线| 亚洲精品永久免费| 欧美精品日韩精品| 亚洲最快最全在线视频| 在线一区观看| 国产精品久久久久久久久免费| 日韩午夜中文字幕| 亚洲综合99| 国产日韩精品入口| 欧美专区日韩视频| 欧美国产一区二区在线观看 | 亚洲精品黄色| 在线看日韩av| 欧美激情第三页| 亚洲天堂男人| 久久久久中文| 999亚洲国产精| 国产欧美一区二区色老头| 久久综合伊人77777尤物| 亚洲九九爱视频| 久久精品日产第一区二区三区| 国产综合久久久久久鬼色| 久久综合色88| 亚洲天堂免费在线观看视频| 美女久久一区| 亚洲欧美日本日韩| 韩国一区二区在线观看| 欧美日韩国产三区| 午夜在线一区二区| 亚洲日本精品国产第一区| 久久精品av麻豆的观看方式| 日韩视频中文字幕| 国产午夜亚洲精品理论片色戒| 欧美国产高清| 久久电影一区| 亚洲深夜影院| 欧美大片免费观看| 亚洲综合第一页| 亚洲精品综合| 激情亚洲成人| 国产精品爽爽爽| 欧美日韩一区精品| 免费在线成人| 久久免费的精品国产v∧| 亚洲精品日本| 亚洲高清色综合| 榴莲视频成人在线观看| 欧美在线免费一级片| 亚洲免费福利视频| 91久久国产精品91久久性色| 国产精品欧美在线| 在线精品国产成人综合| 一区二区三区在线不卡| 欧美日韩亚洲一区二区三区在线| 久久久夜精品| 久久精品理论片| 亚洲欧美在线高清| 亚洲制服av| 最新国产拍偷乱拍精品| 亚洲第一页在线| 欧美成人一区二区三区在线观看| 性欧美videos另类喷潮| 亚洲图片欧洲图片日韩av| 9l国产精品久久久久麻豆| 亚洲精品国产精品乱码不99按摩 | 在线日韩精品视频| 红桃视频成人| 在线成人欧美| 在线播放亚洲| 亚洲黄色免费电影| 亚洲日本成人| 99热这里只有精品8| 一区二区三区四区国产精品| 日韩视频一区二区| 99国产精品久久久久久久成人热 | 亚洲尤物精选| 欧美一区二区在线| 久久久久久国产精品mv| 麻豆精品精华液| 亚洲高清久久| 在线视频日韩| 欧美一区二区精美| 久久综合九色综合欧美就去吻 | 久久不射2019中文字幕| 久久午夜av| 欧美美女喷水视频| 国产精品一区视频网站| 国产亚洲精品资源在线26u| 永久免费精品影视网站| 亚洲伦理在线观看| 亚洲欧美激情一区二区| 久久久精品午夜少妇| 你懂的国产精品| 欧美激情一二区| 亚洲一级影院| 蜜臀av国产精品久久久久| 欧美日韩国产一区| 国产女人精品视频| 最新中文字幕亚洲| 小处雏高清一区二区三区 | 宅男噜噜噜66一区二区 | 99www免费人成精品| 欧美亚洲系列| 欧美激情视频给我| 亚洲欧美第一页| 免费观看一区| 国产精品久久久久国产精品日日| 韩国久久久久| 亚洲午夜精品久久久久久浪潮 | 一区二区三区日韩欧美精品| 久久婷婷av| 亚洲视频在线免费观看| 欧美亚洲日本网站| 欧美精品福利视频| 一色屋精品视频免费看| 亚洲影院色无极综合| 欧美成人亚洲成人日韩成人| 中文在线一区| 欧美寡妇偷汉性猛交| 国产亚洲欧美中文| 亚洲私人影院在线观看| 欧美成人精品一区二区三区| 亚洲国产欧美在线人成| 亚洲电影专区|