Здравствуйте, столкнулся с проблемой сокращение чисел php. Вместо 0.00007 php переделывает в 7e-05 и т.д. Все это создает массу проблем, весь код приходиться адаптировать используя number_format(7e-05, 8); Да и после этого получаю 0.00007000 вместо 0.00007 Есть ли способ запретить переделывать числа в такое 7e-05 Спасибо
ну ты попросил восемь знаков… машины они такие конкретные --- Добавлено --- есть ещё функции printf и sprintf с выводом по формату, например sprintf("%.5f", 7e-05) можно указать формат '%f' без указания конкретного количества знаков, но это не означает ничего "автоматического" ))) будет действовать число знаков по умолчанию из настроек php
Какая-то бессмыслица в использовании sprintf и в '%f' sprintf("%.5f", 7e-05) // 0.00007 sprintf("%.5f", 7e-06) // 0.00001 sprintf(7e-05) // 7e-05 Оба варианта не решают проблем. В настройках php Precision = 12 Понятно то нужно предварительно вытащить %.5f но как то слишком много действий, может существует вариант стандартный)
оба три варианта? ))) без указания формата функция не должна использоваться, очевидно. я писал про '%f' (без указания точности), а не про отсутствие формата вообще. обрезать правые незначащие нули можно через rtrim($f, '0'). но есть но! бывает, что ожидаешь например 0.007, а при высокой точности отображения видишь типа 0.00700000001 - тут очевидно срезать нули не получится. используй фиксированный формат и не парься, я считаю.
Cпасибо! Cделал в итоге так: $a = sprintf("%.8f", 7e-05); $b = rtrim($a, '0'); echo $b; Здорово, спасибо Вам)