Мне надо сложить числа с 3 знаками после запятой и с одним знаком после запятой.
Вот так неверно:
$k19 = $k19 + $zap['ex'];
Спасибо
Спустя 14 минут (9.12.2011 - 10:15) Michael написал(а):
Гость_moroz, код твой какой то подмороженный, невтемный. Есть другой?
А так:
не то?
А так:
$x = 12.211;
$y = 1.6;
$z = $x + $y;
не то?
Спустя 25 минут, 55 секунд (9.12.2011 - 10:41) Guest написал(а):
В приведенном примере идет накапливание дробных данных.Я дополню так:У меня в таблице (MySQL) данные вводятся в виде дробных чисел.В одном столбце-данные с 3 знаками после запятой,а в другом столбце-с 1 знаком после запятой.
Не точка,а ЗАПЯТАЯ.
Вопрос:как мне сложить эти данные?
Я изменю для примера данные:
В этом случае результат-только целые числа.Дробные отсутствуют.
Не точка,а ЗАПЯТАЯ.
Вопрос:как мне сложить эти данные?
Я изменю для примера данные:
$a=45,456;
$b=12,178;
echo "$a+$b";
В этом случае результат-только целые числа.Дробные отсутствуют.
Спустя 5 минут, 59 секунд (9.12.2011 - 10:47) killer8080 написал(а):
А откуда там в базе взялись запятые? Значит данные хранятся в не правильном виде, VARCHAR, вместо DOUBLE.
Спустя 3 минуты, 35 секунд (9.12.2011 - 10:50) Guest написал(а):
Да,varchar.Не мной это введено было.Подскажите,как мне перейти для суммирования на точку?
Спустя 2 минуты, 40 секунд (9.12.2011 - 10:53) Michael написал(а):
str_replace, но конечно это костыль, то что вы лепите.
Спустя 1 минута, 2 секунды (9.12.2011 - 10:54) killer8080 написал(а):
Правильней было бы исправить таблицу в БД. Но если с этим проблемы, то используй str_replace(), для замены.
Michael опередил
Michael опередил
Спустя 16 минут, 42 секунды (9.12.2011 - 11:11) sergeiss написал(а):
Цитата (Guest @ 9.12.2011 - 11:50) |
Подскажите,как мне перейти для суммирования на точку? |
Для начала создай новое поле в той же таблице, типа double.
Затем запусти UPDATE, который возьмет исходное поле, преобразует его к типу ДАБЛ и сохранит в новом поле.
Потом удали старое поле (но это не обязательно, всё зависит от скриптов, работающих с этой таблицей).
И забудь как о страшном сне о выборке вещественных данных из символьного поля...
В итоге можно новому полю дать имя старого поля. А можно этого не делать - в зависимости от имеющейся задачи.
Ну, и небольшое предупреждение Если в таблице много сотен тысяч или миллионы записей, то сия процедура может занять достаточно заметное время. А если данных меньше, ну пусть даже десятки тысяч строк, то весьма быстро будет выполнено всё.
Я считаю, что данный алгоритм будет наиболее правильным. Потому что ты один раз потратишь время на преобразование таблицы, но затем ты уже будешь работать полноценно со своими данными.
Спустя 7 минут, 35 секунд (9.12.2011 - 11:18) killer8080 написал(а):
sergeiss
Правильно то, оно конечно правильно. Но потом придётся перешерстить все скрипты, которые работали с этой таблицей, чтоб баги не по вылазили. Если ТС нужно по быстрому что то подправить в чужом коде, с минимальными накладками, то и костыль с реплейсами сойдет
Но тут уж сам пусть решает.
Правильно то, оно конечно правильно. Но потом придётся перешерстить все скрипты, которые работали с этой таблицей, чтоб баги не по вылазили. Если ТС нужно по быстрому что то подправить в чужом коде, с минимальными накладками, то и костыль с реплейсами сойдет
Но тут уж сам пусть решает.
Спустя 6 минут, 57 секунд (9.12.2011 - 11:25) Zerstoren написал(а):
Цитата (killer8080 @ 9.12.2011 - 08:18) |
sergeiss Правильно то, оно конечно правильно. Но потом придётся перешерстить все скрипты, которые работали с этой таблицей, чтоб баги не по вылазили. Если ТС нужно по быстрому что то подправить в чужом коде, с минимальными накладками, то и костыль с реплейсами сойдет Но тут уж сам пусть решает. |
Можно таблицу переименовать)
Но маразм использовать запятую в дробных числах оценен.