Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-检查正负数字字符串_Php - Fatal编程技术网

PHP-检查正负数字字符串

PHP-检查正负数字字符串,php,Php,我想知道检查数字字符串是正还是负的最好方法是什么 我正在使用它,但我无法确定带小数的数字是+还是- 例如: 似乎当添加一个小数点时,它返回false。如何正确检查正字符串+0.XX和负字符串0){ 返回“正”; }elseif($Degree0。 function check_numb($Degree){ if ( $Degree > 0 ) { return 'Positive'; } elseif( $Degree < 0 ) { return 'Negat

我想知道检查数字字符串是正还是负的最好方法是什么 我正在使用它,但我无法确定带小数的数字是+还是-

例如:

似乎当添加一个小数点时,它返回false。如何正确检查正字符串
+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';
  }
}