>  기사  >  백엔드 개발  >  PHP 문자열 자체 계산 및 수치 계산 사용법에 대한 자세한 설명

PHP 문자열 자체 계산 및 수치 계산 사용법에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-06-21 11:27:421805검색

문자열을 숫자 값으로 처리하는 경우 결과 및 유형은 다음과 같습니다.

문자열에 '.', 'e' 또는 'E'가 포함되지 않고 해당 숫자 값이 정수 범위에 있는 경우 (PHP_INT_MAX로 정의된) 내에서 문자열은 integer로 처리됩니다. 다른 모든 경우에는 값이 부동소수점으로 처리됩니다.

문자열의 시작 부분에 따라 값이 결정됩니다. 문자열이 유효한 숫자 값으로 시작하는 경우 해당 숫자 값이 사용됩니다. 그렇지 않으면 해당 값은 0(영)입니다. 유효한 값은 선택적 기호, 그 뒤에 하나 이상의 숫자(소수점이 있을 수 있음), 선택적 지수 부분으로 구성됩니다. 지수 부분은 'e' 또는 'E' 뒤에 하나 이상의 숫자가 오는 것으로 구성됩니다.

다음은 정수로 변환됩니다.

[+/-][0-9][*]

다음은 부동 소수점숫자로 변환됩니다.

[+/-][0-9][.][0-9][e/E][0-9][*]
$r = '123' + 1;
var_dump($r);// 输出结果 int(124)$r = '123.4' + 1;
var_dump($r);// 输出结果 float(124.4)$r = '1.5e4' + 1;
var_dump($r);// 输出结果 float(15001)$r = '123456789123456789' + 1;
var_dump($r);// 输出结果 float(1.2345678912346E+17)$r = '123abc' + 1;
var_dump($r);// 输出结果 int(124)$r = '123e1abc' + 1;
var_dump($r);// 输出结果 float(1231)$r = '123.abc' + 1;
var_dump($r);//输出结果 float(124)$r = '+123abc' + 1;
var_dump($r);// 输出结果 int(124)$r = '-123abc' + 1;
var_dump($r);// 输出结果 int(-122)$r = 'abc' + 1;
var_dump($r);// 输出结果 int(1)

필요한 것이 정수(부동 소수점 수)라고 판단한 후 intval( ) (floatval()) 먼저 다른 숫자 값으로 계산을 수행하기 전에 문자열을 정수(부동 소수점 수)로 변환합니다.

하나. PHP

1에서 숫자 문자열 추가. 두 문자열이 시작 부분에 유효한 값이 없거나 숫자 문자열이 아닌 경우 추가 시 두 문자열은 0으로 간주됩니다. 문자열에는 유효 숫자가 추가됩니다.

$a="abc";
$b="b01";
$a+$b是0

3/문자열에 '.', 'e', ​​'E'가 포함되어 있으면 부동 소수점 숫자로 처리됩니다.

$a="100";
$b="01a";
$a+$b=101;
$a="100";
$b="12.6a";
$a+$b=112.6;

2.php의 두 문자열을 비교합니다(6d267e5fab17ea8bc578f9e7e5e1570b ==).

1.php의 두

문자열

을 비교하여 동일한지 확인합니다. 일반적으로 (==)는 사용되지 않습니다. ) 원본 데이터 유형을 변경하지만 strcmp(str1, str2) 시리즈 함수 strcmp($str1,$str2);를 사용합니다(strcmp는 비교를 위해 강제로 string 유형으로 변환됩니다).

$a='10';
$b='12.3e3';
$a+$b同样为float型float(12310)
하지만 (==)를 비교에 사용하면 결과는 true입니다

var_dump($a==$b);

그래서 (==)는 일반적으로 문자열 비교에 사용되지 않습니다.

또한 숫자를 문자열과 비교할 때 문자열은 int 또는 float 유형으로 변환됩니다(numberic_string에는 '.', 'e', ​​'E'가 포함됨).

$a='123';
$b='123.';($b后多了一个小数点)

2. ( > < ) 비교

2-1: 두 문자열을 비교하는 경우 해당 문자의 ASCII 코드를 하나씩 비교합니다.

2-2: 숫자를 문자열과 비교하는 경우 문자열을 먼저 숫자로 변환한 후 비교합니다.

2-3: 두 개의 숫자 문자열(순수 숫자 문자열)을 비교하는 경우 두 문자열을 먼저 숫자로 변환한 후 비교합니다.

‘abc’转化为int(0);
‘12ab’转化为int(12);
‘12.3e3&#39;转化为float(12300);

하지만

$a=&#39;100&#39;;
$b=&#39;20&#39;;
则$a>$b;

위 내용은 PHP 문자열 자체 계산 및 수치 계산 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.