2014-09-20 46 views
0

我正在實現一個將浮點數轉換爲字符串的函數。拆分spliti在PHP 5.3中已棄用。我該如何替換它們?

function exp2int($exp) { 
    list($mantissa, $exponent) = spliti("e", $exp); 
    if($exponent=='') return $exp; 
    list($int, $dec) = split("\.", $mantissa); 
    bcscale (abs($exponent - strlen($dec))); 
    return bcmul($mantissa, bcpow("10", $exponent)); 
} 

這是一個例子:

$n = 2.777777778e-10; 
echo exp2int($n); 

返回:

0.0000000002777777778 

我的服務器正在運行腓5.4,並且由於分裂spliti因爲PHP 5.3已被棄用,我收到這些消息:

Deprecated: Function spliti() is deprecated 
Deprecated: Function split() is deprecated 

如何更換我的exp2int函數中的那些函數(不使用@)?謝謝!

回答

3

由於上split()狀態PHP網站:

提示分割()已過時的PHP 5.3.0的。 preg_split()是該函數的建議替代方法。如果你不需要正則表達式的能力,那麼使用explode()會更快,這不會導致正則表達式引擎的開銷。

類似地,對於spliti()

提示spliti()被棄用PHP 5.3.0的。 preg_split()與我(PCRE_CASELESS)修飾符是建議的替代方案。

但是請注意,該explode()需要一個定界符string而非regex圖案作爲參數。

+0

我試過了,但用explode替換split並沒有返回精確的小數位數。 – andufo 2014-09-20 16:04:43

+0

你會得到什麼? – andy 2014-09-20 16:23:26

+0

對於我得到的同一個例子:0.0000000002 – andufo 2014-09-20 16:53:22

相關問題