Articles of плавающей запятой

Кодирование и декодирование плавает в json с PHP без потери точности

Я хочу декодировать строку json для объекта PHP, а затем вернуть объект обратно в строку json без потери точности для чисел float в json. Если вы запустите образец ниже, вы увидите: JSON: string '{ "integer1": 10000, "integer2": 100000999499498485845848584584584, "float1": 1.121212, "float2": 8.226347662837406e+09 }' (length=130) JSON WITHOUT SPACES [1]: string '{"integer1":10000,"integer2":100000999499498485845848584584584,"float1":1.121212,"float2":8.226347662837406e+09}' (length=112) OBJECT: object(MyObject)[1] public 'integer1' […]

Нечеткие числа с добавлением микросов и с плавающей запятой в PHP

У меня ужасное время, убеждающее себя, что я здесь сделал, хорошая идея. Конкретный раздел, который я считаю неуместным, таков: return ((float)($now+$sec).'.'.$mic); Чтобы сохранить точность с плавающей запятой, я вынужден либо вернуться к библиотекам BC или GMP (ни одна из которых не всегда доступна). В этом случае я прибегал к помехам чисел вместе со строкой конкатенации. […]

Функция fmod возвращает неверный результат

Я получаю fmod, возвращая неправильный результат, я делаю что-то неправильно? for($i = 0.00; $i < 1; $i = $i + 0.05) { var_dump($i." = ".fmod($i, 0.05)); } Вывод: 0.= 0 0.05 = 0 0.1 = 0 0.15 = 1.3877787807814E-17 0.2 = 0 0.25 = 0.05 0.3 = 0.05 0.35 = 0.05 0.4 = 0.05 0.45 […]

Строка с комой для плавания с точкой

Когда я пытаюсь бросить $value = floatval('14,5833'); до типа float Я ожидаю, что значение с точкой равно 14.5833 но оно вернет мне 14,5833 . Как мне это сделать? Я не хотел бы использовать любые функции замены строк.

Почему PHP, похоже, неправильно оценивает это состояние?

У меня есть следующий код на PHP, где я попытался преодолеть указанную проблему путем ввода переменных в целые числа, а также избежать ошибок с плавающей запятой, умножив все значения на 100 перед сравнением, чтобы удалить 2 десятичных знака. Однако следующий код по-прежнему оценивает выражение true и окрашивает текст в красный цвет вместо зеленого, но когда […]

PHP Printf как плавающая точность

Я пытаюсь использовать функцию printf для печати пользовательской емкости. Полная формула выглядит примерно так: echo printf("%.02f", ($size/(1024*1024))) . " GB"; Учитывая, что $size == (10 * 1024 * 1024) , это должно распечатываться 10,00 ГБ Но это не так. Он печатает 10.04 GB . Более того, echo printf("%.02f", 10) приводит к 10,04 Какие?! Предоставляя ему […]

Неверное форматирование float в PHP (sprintf, printf)

Я отлаживал PHP-код и выяснял следующее: $a = 111749392891; printf('%f', $a); 111749392890.:00000 printf('%F', $a); 111749392890.:00000 printf('%F.2', $a) 111749392890.:00000.2 printf('%F0.2', $a); 111749392890.:000000.2 number_format($a, 2, '.',''); 111749392891.00 Только вывод number_format () выглядит мне хорошо. Я что-то упускаю? Я использую PHP 5.3.

Преобразование между степенью и Miliseconds

Я знаю формуляр для преобразования от степени к Miliseconds и наоборот. Он может быть реализован следующим образом: protected function decimal_to_milisecond($dec) { if (!empty($dec)) { $vars = explode(".",$dec); if (count($vars) == 2) { $deg = $vars[0]; $tempma = "0.".$vars[1]; $tempma = $tempma * 3600; $min = floor($tempma / 60); $sec = $tempma – ($min*60); return round((((($deg […]

Печать значений float с помощью sprintf

Прямо сейчас у меня есть: printf('Rating: %.2F', $rating); который печатает как: 4.00 Как я могу показать начальный ноль, только если есть что показать после него? Например: 4.00 должно быть 4 4.20 – 4.2 4.02 должно быть 4.02 🙂

Преобразовать float в строку в php?

Подобно: float (1.2345678901235E + 19) => строка (20) "12345678901234567890" Это можно сделать? (это для json_decode …)