熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

PHP學習記錄(浮點型)

2013-11-15 12:37:47  來源: PHP編程 

  <?php
$a = ;
$b = e;
$c = E;
?>

  正則表達示如下

  浮點數     []+
雙精度型   ([][]{LNUM}) | ({LNUM}[][]*)
指數表達式 [+]?(({LNUM} | {DNUM}) [eE][+]? {LNUM})

  =========================
最大浮點數php代碼如下:
<?php
  function float_max($mul = $affine = ) {
    $max = ; $omax = ;
    while((string)$max != INF) { $omax = $max; $max *= $mul; }

  for($i = ; $i < $affine; $i++) {
      $pmax = ; $max = $omax;
      while((string)$max != INF) {
        $omax = $max;
        $max += $pmax;
        $pmax *= $mul;
      }
    }
    return $omax;
  }
  echo "最大浮點數:" ;var_dump(float_max());
?>
=========================
結果如下(與平台相關)
最大浮點數:float(E+)

  關於浮點數精度的注意事項:

  簡單的十進制分數如同 在轉換為內部二進制的格式會丟失精度
例如floor((+)*) 通常會返回 而不是預期中的 因為該結果內部的表示其實是
就是不可能精確的用有限位數表達某些十進制分數
例如十進制的 / 變成了
所以
永遠不要相信浮點數結果精確到了最後一位
也永遠不要比較兩個浮點數是否相等
如果確實需要更高的精度應該使用任意精度數學函數或者 gmp 函數

  自 PHP 如果試圖將對象轉換為浮點數會發出一條 E_NOTICE 錯誤


From:http://tw.wingwit.com/Article/program/PHP/201311/21316.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.