我在腳本中有用戶輸入 - $_POST['money']
並且我想確認它實際上是2位小數位的浮點數。檢查變量是否有最大2位小數位浮點數
我的計劃是$money = (float)@$_POST['money']
,在這種情況下,如果輸入非數字,它會將$money
設置爲零。但是當用戶輸入類似5.234的東西時,可能會發生這種情況,在這種情況下,我也想把錢設置爲零。
我不想要explode
或類似的東西棘手,我希望有一個這樣做的有效方式。
整數也很好,因爲它是一個有效的數量。
我在腳本中有用戶輸入 - $_POST['money']
並且我想確認它實際上是2位小數位的浮點數。檢查變量是否有最大2位小數位浮點數
我的計劃是$money = (float)@$_POST['money']
,在這種情況下,如果輸入非數字,它會將$money
設置爲零。但是當用戶輸入類似5.234的東西時,可能會發生這種情況,在這種情況下,我也想把錢設置爲零。
我不想要explode
或類似的東西棘手,我希望有一個這樣做的有效方式。
整數也很好,因爲它是一個有效的數量。
我選擇使用此代碼:
$money = (float)(@$_POST['money']/0.01) <> (int)(@$_POST['money']/0.01) ? 0 : (float)@$_POST['money'];
如果您有更好的解決方案,請發佈。
檢查這裏:
http://php.net/manual/ro/function.is-float.php
這裏
http://php.net/manual/en/function.number-format.php
或使用該功能
function is_deccount($number,$decimal=2){
$m_factor=pow(10,$decimal);
if((int)($number*$m_factor)==$number*$m_factor)
return true;
else
return false;
}
已經選擇,因爲它只使用數學,而不是其他功能(除了鑄造) – Drahcir
只有不夠好,如果你對地點的數量不感興趣......只是不喜歡使用'@' – Baba
@Baba:我是感興趣的地方,我已經測試,這將只適用於地方<= 2,其他任何將導致0這是我需要的地方。 – Drahcir