我想檢查給定數字是否為十進制的天氣,如果它是十進制它應該回傳十進制,否則它應該回傳整數。
我從互聯網上嘗試了很多解決方案,但在某些條件下失敗了,請幫助我實作這一目標。
如果是這種格式,它也應該回傳十進制10.00, 10.0 ,99.000。
$value=$request->amount;//99.99,99.00...
if(gettype($value)){
if(decimal){
//My logic goes here.
}
if(integer){
//My logic
}
}
uj5u.com熱心網友回復:
這是你想要的:
$value=$request->amount;
if(fmod($value, 1) !== 0.00){
//It is decimal, so the decimal logic goes here.
} else {
// It is an Intereger, so the ineteger logic goes here.
}
fmod(x,y) 是一個 PHP 函式,它回傳 x/y 的余數。
您只需設定 y=1,只有當 x/1 的余數等于 0.00 時,數字(這里是 x)才是整數。
例如:
fmod(10.05,1) 的輸出是 0.05 所以它是十進制 fmod(5,1) 的輸出是 0 所以它是一個整數
如果您想了解更多關于 fmod 函式的資訊,請訪問fmod 函式說明
注意:您甚至可以將字串傳遞給 fmod 函式,它會自動更改為數字。
例如:
fmod('34.04',1) 的輸出是 0.04 并且是十進制的
uj5u.com熱心網友回復:
您可以從 中獲得大部分內容is_float,但如果您真的需要知道其中是否包含小數,則可以使用以下函式:
function is_decimal( $val )
{
return is_numeric( $val ) && is_float( $val ) != $val;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361345.html
