回覆列表
  • 1 # 錢布斯

    預設就會轉換

    型別 位元數 有效數字 數值範圍

    float 32 6-7 -3.4*10(-38)~3.4*10(38)

    double 64 15-16 -1.7*10(-308)~1.7*10(308)

    long double 128 18-19 -1.2*10(-4932)~1.2*10(4932)

    簡單來說,Float為單精度,記憶體中佔4個位元組,有效數位是7位(因為有正負,所以不是8位),在我的電腦且VC++6.0平臺中預設顯示是6位有效數字;double為雙精度,佔8個位元組,有效數位是16位,但在我的電腦且VC++6.0平臺中預設顯示同樣是6位有效數字(見我的double_float檔案)

    還有,有個例子:在C和C++中,如下賦值語句

    float a=0.1;

    編譯器報錯:warning C4305: "initializing" : truncation from "const double " to "float "

    原因:

    在C/C++中(也不知道是不是就在VC++中這樣),上述語句等號右邊0.1,我們以為它是個float,但是編譯器卻把它認為是個double(因為小數預設是double),所以要報這個warning,一般改成0.1f就沒事了。

    通常的做法,經常使用double,而不喜歡使用float。

  • 中秋節和大豐收的關聯?
  • 熱血江湖2.0版本怎麼做裝備強裝備?