PHP-检查正负数字字符串
我想知道检查数字字符串是正还是负的最好方法是什么 我正在使用它,但我无法确定带小数的数字是+还是- 例如: 似乎当添加一个小数点时,它返回false。如何正确检查正字符串PHP-检查正负数字字符串,php,Php,我想知道检查数字字符串是正还是负的最好方法是什么 我正在使用它,但我无法确定带小数的数字是+还是- 例如: 似乎当添加一个小数点时,它返回false。如何正确检查正字符串+0.XX和负字符串0){ 返回“正”; }elseif($Degree0。 function check_numb($Degree){ if ( $Degree > 0 ) { return 'Positive'; } elseif( $Degree < 0 ) { return 'Negat
+0.XX
和负字符串<-0.XX
哪两个小数点
谢谢 考虑到给定的输入,为什么不:
$number = '+2,33122';
$isPositive = $number[0] === '+' ? 'Positive' : 'Negative';
// Positive
$number = '-0,2';
$isPositive = $number[0] === '+' ? 'Positive' : 'Negative';
// Negative
下面是一个更通用的代码,即使从您的输入中删除了该符号,该代码仍然有效:
function checkPositive ($number) {
if (!is_numeric(substr($number, 0, 1))) {
$sign = substr($number, 0, 1);
return $sign == '+';
}
return $number > 0;
}
$number = '+2,33122';
var_dump(checkPositive($number));
// true
$number = '-2,33122';
var_dump(checkPositive($number));
// false
$number = '2,22';
var_dump(checkPositive($number));
// true
您的问题是因为:
(int)“+2.1”==2
和2!=“+2.1”
。对于所有数字,如果是<0
则为负数,如果是>0
则为正数。如果它是==0
,那么显然是0
,它是无符号的
function check_numb($Degree){
if ( $Degree > 0 ) {
return 'Positive';
} elseif( $Degree < 0 ) {
return 'Negative';
}
}
功能检查\u numb($Degree){
如果($Degree>0){
返回“正”;
}elseif($Degree<0){
返回“负数”;
}
}
我假设此方法始终要求数字字符串以+或-符号开头。对吗?@Awena是的。我添加了一个在任何情况下都能工作的函数:数值(int)“+2.1”==2
和2!=“+2.1”
-对于所有数字,如果小于0,则为负;如果大于0,则为正。我理解,但给出了$numb=“+0.8”;然后(int)$numb返回0而不是0.8,它返回负数。我怎么能用小数返回(int),这听起来合乎逻辑吗?.8
不是整数<代码>0!=“+0.8”。而且,0
不是>0
。
function check_numb($Degree){
if ( $Degree > 0 ) {
return 'Positive';
} elseif( $Degree < 0 ) {
return 'Negative';
}
}