PHP貨幣採取
回答
$number = str_replace('.','',$number);
str_replace可以工作,但如果他的值是10.3567(例如,平均成本)呢?無論輸入是什麼,下面的答案(乘以100並且轉換爲int)都將起作用。 – Fluffeh
如果$ number是一個浮點值,這真的很危險。如果浮點數不能精確地描述該值並且出現幾個小數位,會發生什麼情況?如果值是'1500.3',會發生什麼? –
@Fluffeh,@EmilVikström。我們不能真正解決op **的問題**,因爲我們不知道問題是什麼。我們所能做的只是回答**問題**。問題是:「如何將10.25轉換爲1025」,所以答案是使用'str_replace',它可以在這裏工作。如果問題不符合問題 – k102
如果貨幣是float:用100乘以(並把結果到int
)。
$currency = 10.25;
$number = (int)($currency * 100); //1025
請注意,此解決方案將只得到前兩個小數保存 - 如果你有一些像10.123
,在3
將簡單地沒有四捨五入切斷。
當處理需要精確的值時(貨幣處理必須始終準確),應避免浮點算術。 –
你是絕對正確的,但是如果它之前是浮點數,那麼你已經有可能被編譯出來,因爲可能使用它來計算其他東西。如果你想確切地說,在任何地方都要使用實數,並且只是爲了顯示而使浮點數顯示出來 - 但這顯然不是這種情況,因爲應該沒有任何理由退回。 – oezi
但是我們知道這是一個浮動值嗎?這可能是一個字符串,在這種情況下,您的解決方案將其轉換爲浮點數。我認爲這是最好的解決方案,如果$貨幣已經是一個浮動(我幾乎發佈完全相同的答案),但如果它實際上是一個字符串,你應該做字符串工作。 –
浮點算術是由它的定義不準確。因此,如果它是一個字符串,則不要將該值轉換爲浮點值,並且如果它是浮點值,則不要將其轉換爲字符串。
這裏是一個函數,它負責檢查值類型:
function toCents($value) {
// Strings with a dot is specially handled
// so they won't be converted to float
if (is_string($value) && strpos($value, '.') !== false) {
list($integer, $decimals) = explode('.', $value);
$decimals = (int) substr($decimals . '00', 0, 2);
return ((int) $integer) * 100 + $decimals;
// float values are rounded to avoid errors when a value
// like ".10" is saved as ".099"
} elseif (is_float($value) {
return round($value * 100);
// Other values are strings or integers, which are cast
// to int and multiplied directly.
} else {
return ((int) $value) * 100;
}
}
+1爲完整答案:) – k102
$number = str_replace('.','',$number);
和
$number = strtr($number, array('.', ''));
相同的輸出,但strtr更好。
- 1. 印度貨幣的PHP貨幣格式?
- 2. 簡單的貨幣值,不知道如何採取輸入和輸出貨幣
- 3. PHP貨幣顯示
- 4. PHP貨幣格式
- 5. 獲取貨幣符號在PHP
- 6. PHP弄錢貨幣價值
- 7. 換算貨幣從XML + PHP
- 8. PHP數字格式(貨幣)
- 9. 帶貨幣符號的PHP貨幣格式
- 10. 收集從geoplugin貨幣轉換器返回的貨幣 - PHP
- 11. PHP的貨幣格式不顯示貨幣符號
- 12. 根據貨幣代碼將貨幣格式設置爲貨幣
- 13. 貨幣列表與貨幣符號和貨幣名稱母語
- 14. 貨幣
- 15. 獲取貨幣數據
- 16. 獲取最新貨幣
- 17. 如何通過貨幣名稱獲取貨幣符號?
- 18. 如何從iphone中的貨幣代碼獲取貨幣符號?
- 19. 從貨幣代碼中提取貨幣符號Yii
- 20. 根據ISOCountryCode獲取貨幣符號和貨幣代碼
- 21. 從Objective-C中獲取貨幣代碼的貨幣符號
- 22. iOS如何通過貨幣代碼獲取貨幣符號?
- 23. Android貨幣類別 - 如何獲取貨幣的顯示名稱?
- 24. Automapper地圖(十進制,貨幣)貨幣
- 25. 未格式化貨幣格式貨幣
- 26. C#格式十進制貨幣/貨幣
- 27. 貨幣符號
- 28. 格式貨幣
- 29. 轉換貨幣
- 30. 軌AJAX貨幣
1500.25是浮點還是字符串? –