с плавающей запятой — Как заставить 3 десятичных знака, содержащие нули в конце с плавающей точкой в ​​переполнении стека

У меня есть очень длинное число в строковом формате, как это:

$startdate = "1437925621000";

На самом деле это метка времени Unix, но когда я преобразую ее из объекта даты в метку времени Unix, она становится строкой.

Мне нужно превратить это в это: 1437925621.000, поэтому я написал небольшой код, который добавляет десятичную точку к строке в правильном положении. Это все еще строка в этой точке.

Однако для сравнения это должен быть float, поэтому я преобразовал его в float, например:

$startdate = floatval($startdate);

Но когда я конвертирую его в число с плавающей точкой, он отсекает три нуля после десятичной точки, и мне нужно, чтобы они были там.

Я также попытался использовать number_format, но это возвращает строку, и когда я конвертирую ее обратно, чтобы всплывать, десятичные точки снова обрезаются. Есть ли способ обойти это?

Мне не нужно печатать этот номер. Мне нужно сравнить метки времени Unix. Я запрашиваю базу данных, которая содержит даты, хранящиеся в виде десятичных знаков с 4 десятичными знаками. Они используются как метки времени, но хранятся в виде десятичных знаков в базе данных MySQL.

Число, на которое я ссылаюсь, используется в запросе для выбора записей из этой базы данных на основе даты, которая хранится как десятичное число с 4 десятичными знаками. Если у меня нет десятичной точки, она не сравнивается правильно.

1

Решение

Вы можете добавить 0,0001 к floatval ($ startdate) и добавить 0,0001 к другому VAR, чтобы сравнить их

floatval($startdate) + 0.0001 === $otherVar + 0.0001
0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector