2014-10-18 118 views
0

我在試圖獲取小數的小數數。我試着遵循簡單的代碼,但循環永遠運行。在while循環條件下is_double函數

$var = 123.456; 
    $fraction_count = 0; 
    echo $var, "<br>"; 
    while (is_double($var)) { 
     $var *= 10; 
     $fraction_count++; 
     echo $var, "<br>"; 
    } 

我是新來的PHP所以,原諒我,如果這是一個愚蠢的問題!

+0

無論如何你的真正意圖是什麼?你真的想在那裏有一個循環? – Ghost 2014-10-18 15:03:07

+2

**我假設**這是因爲is_double()檢查變量類型,而不是數字格式。由於$ var被初始化爲double,所以除非強制轉換,否則它將永遠不會成爲int。 – Zero 2014-10-18 15:05:45

回答

1

浮點數並不是微不足道的(詳見manual)。但是你甚至不需要像這樣處理數字。

如果你把它作爲一個字符串,可以explode().和第二部分使用strlen()得到$fraction_count

$var = 123.456; 
$parts = explode('.', $var); 
$fraction_count = strlen($parts[1]); 

由於PHP不保存數字尾隨0 S,這同樣適用於123.4560,但一定要輸入一個數字,"123.4560"會給你一個錯誤的結果。