[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как сложить дробные числа
Гость_moroz
Помогите мне,пожалуйста.
Мне надо сложить числа с 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 опередил rolleyes.gif

Спустя 16 минут, 42 секунды (9.12.2011 - 11:11) sergeiss написал(а):
Цитата (Guest @ 9.12.2011 - 11:50)
Подскажите,как мне перейти для суммирования на точку?

Для начала создай новое поле в той же таблице, типа double.
Затем запусти UPDATE, который возьмет исходное поле, преобразует его к типу ДАБЛ и сохранит в новом поле.
Потом удали старое поле (но это не обязательно, всё зависит от скриптов, работающих с этой таблицей).
И забудь как о страшном сне о выборке вещественных данных из символьного поля...

В итоге можно новому полю дать имя старого поля. А можно этого не делать - в зависимости от имеющейся задачи.

Ну, и небольшое предупреждение smile.gif Если в таблице много сотен тысяч или миллионы записей, то сия процедура может занять достаточно заметное время. А если данных меньше, ну пусть даже десятки тысяч строк, то весьма быстро будет выполнено всё.

Я считаю, что данный алгоритм будет наиболее правильным. Потому что ты один раз потратишь время на преобразование таблицы, но затем ты уже будешь работать полноценно со своими данными.

Спустя 7 минут, 35 секунд (9.12.2011 - 11:18) killer8080 написал(а):
sergeiss
Правильно то, оно конечно правильно. Но потом придётся перешерстить все скрипты, которые работали с этой таблицей, чтоб баги не по вылазили. Если ТС нужно по быстрому что то подправить в чужом коде, с минимальными накладками, то и костыль с реплейсами сойдет smile.gif
Но тут уж сам пусть решает. smile.gif

Спустя 6 минут, 57 секунд (9.12.2011 - 11:25) Zerstoren написал(а):
Цитата (killer8080 @ 9.12.2011 - 08:18)
sergeiss
Правильно то, оно конечно правильно. Но потом придётся перешерстить все скрипты, которые работали с этой таблицей, чтоб баги не по вылазили. Если ТС нужно по быстрому что то подправить в чужом коде, с минимальными накладками, то и костыль с реплейсами сойдет smile.gif
Но тут уж сам пусть решает. smile.gif

Можно таблицу переименовать)
Но маразм использовать запятую в дробных числах оценен.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.