Прошу пардона - не работает. Потому что оказывается в ряду встречаются и дроби с нулем в конце, и даже с двумя.
А-ля 0.034500 - ведь это тоже надо вывести без изменений, как есть, а не убивать нули в конце
aldroid, не совсем понял, число 0.034500 будет храниться в PHP как 0.0345. Числа тогда сразу нужно хранить в виде строки, но я не знаю откуда и в каком виде они к вам приходят.
Изначально - строки. При парсинге они становятся числами. С массивом производятся некие сравнения, с некоторыми данными вычисления. Массив выводится обратно в таблицу в том виде, в котором был изначально, заменив некоторые изменившиеся данные. Форматирование дробей должно сохраниться. Видимо единственное решение - действительно, оставлять данные при парсинге строками, благо что массивы не такие уж большие, а новые данные подгонять по длине строки.
aldroid, дело в том, что компьютеры не хранят незначащие нули, а значит у кода просто нет информации, сколько нулей нужно выводить. Отсюда косяки с методами вывода, требующими указания точности - ты тоже не можешь указать верную точность им, т.к. тоже не знаешь её.
Напиши новый класс, в котором храни строковое и числовое представление, и используй его для обмена данными.
При инициализации парси строку в число, и сохраняй внутри класса точность, которая была в строке.
При вычислениях используй число.
При выводе - подставляй в вывод сохраненную точность, и получишь то, что нужно.
Класс нужен для привязки точности к конкретному числу. Но это не обязательно - точно также можно пользоваться массивами, или переменной, если вычисления точечные.
> Есть какой-то еще способ заставить PHP просто вывести дробное число без изменения его внешнего вида?
Нет
Разумеется, никакого способа нет. Потому что никакого "внешнего вида" у дробных чисел не существует в природе. У них есть только внутренний вид, но вам на него смотреть не захочется. А для вывода в десятичном формате его всегда надо преобразовать и отформатировать.
Если важен "исходный внешний вид", то следует работать с числами, как со строками, и тогда они будут всегда выводиться, как есть.