PHP Intval против пола

Есть ли разница между floor() а также intval()? Хотя оба возвращают одинаковые результаты, есть ли проблемы с производительностью? Какой из двух быстрее? Какую функцию php использовать, если я просто хочу вернуть целое значение только десятичного числа?

Цель здесь — отобразить 1999.99–1999, опуская десятичное значение и возвращая только целое число.

$num = 1999.99;
$formattedNum = number_format($num)."<br>";
echo intval($num) . ' intval' . '<br />';
echo floor($num) . ' floor';

5

Решение

Функции дают разные результаты с отрицательными дробями.

echo floor(-0.1); // -1
echo intval(-0.1); // 0
10

Другие решения

Самый быстрый способ — это использовать тип литья: (int)$num,

2

В соответствии с документы,

Возвращаемое значение floor () по-прежнему имеет тип float, потому что диапазон значений float обычно больше целого.

Intval() однако возвращает int.

2

$v = 1999.99;
var_dump(
intval($v),
floor($v)
);

Выход:

int(1999)
float(1999)

Docs:

http://php.net/manual/en/function.intval.php
http://php.net/manual/en/function.floor.php

0
$ratio_x = (0.70/100);

$computation =  $ratio_x * 8000;

$noDeci = floor(($ratio_x * 8000)*1)/1;

$intval = intval(($ratio_x * 8000)*1)/1;

$noDeci_hc = floor((int)56*1)/1;

echo $computation."|".$noDeci."|".$noDeci_hc."|".$intval;

ВЫХОД:
56 | 55 | 56 | 55

$ noDeci возвращает 55 ???

0
По вопросам рекламы [email protected]