回答
$x = '5.005'; // declare as string to avoid floating point errors
$parts = explode('.', $x);
if (strlen($parts[1]) > 2) {
die("Too many digits");
}
只是出於興趣,有什麼用'$ X = '5' 發生;'?您可能需要修復,但+1,因爲這是迄今爲止最好的答案(涉及輸入,而不是輸出)。 – paxdiablo 2012-01-06 14:26:15
你最終只會定義'$ parts [0]',$ parts [1]將是未定義的,但是其strlen爲0。 ))......''應該解決這個問題 – 2012-01-06 14:33:18
您可以格式化數字是這樣的:
$num = 50695.3043;
$num = number_format($num, 2, '.');
echo $num;
這將導致:
50695.30
注意,這輪。所以1.566會回到1.57。
看到我對diEcho的評論,這決定了輸出,而不是限制輸入。 – paxdiablo 2012-01-06 14:27:42
同意,我誤讀了OP的問題 – 2012-01-06 14:28:38
number_format會爲您糾正它,但如果您在提供過多精度時想要出錯,則需要對其進行測試。
$x = 12.345;
if ($x != number_format($x, 2)) {
// error!
}
下面的代碼將捕捉到了一些東西,從用戶輸入的字符串:
- 太多小數點,如
1.2.3
。 - 第二部分中的兩位數以上(如果有),如
1.234
。 - 第一或第二部分中的任何非數字,如
123.4a
或1a3.45
。 - 第一和第二部分空,如
.
。
$x = '12.34';
$parts = explode('.', $x);
$nm0a = preg_match ('/^[0-9]*$/', $parts[0]);
$nm0b = preg_match ('/^[0-9]+$/', $parts[0]);
$nm1a = preg_match ('/^[0-9]*$/', $parts[1]);
$nm1b = preg_match ('/^[0-9]+$/', $parts[1]);
if (count ($parts) > 2) { die ("Too many decimal points"); }
if ($nm0a == 0) { die ("Non-numeric first part"); }
if ($nm1a == 0) { die ("Non-numeric second part"); }
if (($nm0b == 0) && ($nm1b == 0)) { die ("Both parts empty"); }
if (strlen ($parts[1]) > 2) { die ("Too many digits after decimal point"); }
die ("Okay"); # Only here to provide output.
- 1. 需要一個10位數的小數點後兩位數
- 2. 只需要2小數點
- 3. REACT - 防止小數點後2位小數點後的輸入
- 4. 小數點後只有2位數字?
- 5. 學說2 - 2位小數位在浮點數上嗎?
- 6. 我需要點後有2個符號
- 7. 回合到小數點後2位
- 8. as3中的小數點後一位小數嗎?
- 9. 在小數位後刪除所有文本2個位置PHP
- 10. 有小數量,要修剪到小數點後2位(如果存在)
- 11. 驗證總數爲4位,小數點後只有2位數
- 12. printf%f小數點後只有2個數字嗎?
- 13. JAVA:劃分2個大小數並保留小數點後的最大位數
- 14. REGEX需要兩位小數
- 15. 如何將小數點後兩位到小數點後n位?
- 16. 2位小數點純SQL
- 17. 帶點後2位數的浮點數
- 18. 對十進制值做一個Math.Round(x,2),但需要確保小數點後兩位數作爲其貨幣
- 19. Sql Server小數點(30,10)丟失最後2位小數
- 20. 使用浮點數時需要使用小數位嗎? 「f」後綴是否必要?
- 21. Angular 2中需要app.component.ts嗎?
- 22. 需要大量的小數位小數有一個XML架構
- 23. 在小數點後打印PHP浮點數3位數?
- 24. 正則表達式需要匹配數字到2位小數
- 25. PHP:需要更多的小數位數用於竇性計算
- 26. Bash圓點2位小數點
- 27. 將小數點後兩位數舍入到3位小數點,但在小數點後三位消失0
- 28. Android:真的需要2個字節嗎?
- 29. 渲染小數點後三位小數
- 30. 小時的時差與小數點後兩位小數點差
不顧可能重複,請 – Gordon 2012-01-06 14:33:48