Удаление всех десятичных знаков в PHP - PullRequest
10 голосов
/ 05 февраля 2011

получить это из моей базы данных:

252.587254564

Ну, я хочу удалить .587254564 и сохранить 252, как я могу это сделать?

Какую функцию я должен использовать, и можете ли вы показать мне пример?

Привет

Ответы [ 9 ]

15 голосов
/ 05 февраля 2011

Вы можете сделать это в PHP:

round($val, 0);

или в своем выражении MYSQL:

select round(foo_value, 0) value from foo
8 голосов
/ 05 февраля 2011

Вы можете просто выполнить приведение к int.

$var = 252.587254564;
$var = (int)$var; // 252
5 голосов
/ 05 февраля 2011

В PHP вы должны использовать:

$value = floor($value);

floor: Возвращает следующее наименьшее целочисленное значение, округляя значение при необходимости.

Если бы вы хотели округлить это было бы:

$value = ceil($value);

ceil: Возвращает следующее наибольшее целочисленное значение, округляя значение в случае необходимости.

4 голосов
/ 05 февраля 2011

Как упомянул Трикер, вы можете округлить значение вниз или просто привести его к int следующим образом:

$variable = 252.587254564; // this is of type double
$variable = (int)$variable; // this will cast the type from double to int causing it to strip the floating point.
3 голосов
/ 05 февраля 2011

Вы можете просто привести его к int:

$new = (int)$old;
1 голос
/ 05 февраля 2011

И есть также не совсем рекомендуемый метод:

strtok($value, ".");

Это вырезает первую часть, пока не встретит точку. Результатом будет строка, а не целое число PHP. Хотя это не сильно влияет на результат, это не лучший вариант.

1 голос
/ 05 февраля 2011

вы можете использовать echo (int) 252.587254564;

0 голосов
/ 25 января 2019

Перед тем, как использовать приведенный выше ответ, каково ваше точное требование, см. Приведенный ниже пример вывода.

$val = 252.587254564;

echo (int)$val; //252
echo round($val, 0); //253
echo ceil($val); //253


$val = 1234567890123456789.512345;

echo (int)$val; //1234567890123456768
echo round($val, 0);//1.2345678901235E+18
echo ceil($val); //1.2345678901235E+18


$val = 123456789012345678912.512345;

echo (int)$val; //-5670419503621177344
echo round($val, 0);//1.2345678901235E+20
echo ceil($val); //1.2345678901235E+20
0 голосов
/ 05 февраля 2011

В MySQL вы можете использовать:

select floor(field)

или в PHP вы можете использовать:

floor($value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...