#php #floating-point #rounding
#php #с плавающей запятой #округление
Вопрос:
Если у меня есть значение в переменной, например, 10.2333, и мне нужно использовать 23 из .2333, как мне это сделать? Для получения дополнительной информации я рассчитываю разницу во времени:
$started = $_SESSION['now'];
$ended = time();
$time1 = $ended - $started;
$time2 = $time1 / 60;
$ time2 дает мне, например, 10.233
Комментарии:
1. Вам нужно округлить оставшиеся места или просто обрезать их?
Ответ №1:
Это должно дать вам то, что вы хотите.
$time3 = (int)($time2 * 100) % 100;
Редактировать: Вопрос оказался другим. Чтобы получить минуты и секунды временной метки unix, вы должны сделать следующее.
$minutes = ($time1 / 60) % 60;
$seconds = $time1 % 60;
Комментарии:
1. Я пробовал это, не совсем работает, например: $ started = 1321018907; $ ended = 1321020026; $ time1 = $ ended — $ started; $ time2 = $ time1 / 60; $ time3 = (int) ($ time2 * 100) % 100; дает мне: 19 минут и 64 секунды, значение secons неверно.
2. возможно, вы неправильно задали вопрос. этот код выдает вам первые две цифры дробной части. если вы хотите получить секунды временной метки unix, вам следует попробовать $ minutes = ($ time1 / 60) % 60 и $ seconds = $ time1 % 60
Ответ №2:
<?php
list($before_dot, $after_dot) = explode('.', $time2);
$result = substr($after_dot, 0, 2);
?>
Ответ №3:
Что-то вроде этого может сработать:
round(($time2 - (int)$time2) , 2);