2010-11-06 60 views
0

我是從一個網頁到另一個試圖send a number上,以將其保存到我的數據庫,但是當我使用number_format方法的數字轉換爲0PHP:轉換的URL可變數量的數

<?php 
    $_REQUEST["myNumber"]; // the number from the url is 25%2C8 (25,8) 
    // why this returns 0? 
    number_format (urlencode($_REQUEST["myNumber"]), 2, ".", ""); 
?> 

我以爲urlencode功能是有用的轉換網址數字字符串數字,我的錯?

回答

2

如果要解碼字符,則需要使用urldecode函數代替urlencode。並傳遞','作爲十進制指針。

所以,你的代碼應該是這樣的:

number_format (urldecode($_REQUEST["myNumber"]), 2, ",", ""); 

但是,你需要採取的帳戶在$ _ POST \ GET \ REQUEST數組變量是已解碼。也許,你的代碼可能會更簡單:

number_format ($_REQUEST["myNumber"], 2, ","); 
+0

+1提及他正在使用非標準(即本地化)小數分隔符 – 2010-11-06 16:18:45

+0

感謝您的幫助,我是意大利和意大利的數字通常用「,」作爲小數點分隔符。 – vitto 2010-11-06 16:26:34

0

number_format需要數字(浮點,是精確的)作爲第一個參數,而'25,8'將不被認定爲浮動。你需要做這樣的事情:

str_replace(',','.', $_REQUEST["myNumber"]); // '25,8' --> '25.8' 

逗號轉換成可爲十進制數(可存儲在DB)進行評估的字符串。

運行:

print number_format('25,8', 2); 

回報25.00這是不25.80(我假設是你想要的結果)。