Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сложение дробных чисел

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как сложить дробные числа с 1 и 3 знаками после запятой
moroz
Отправлено: 09 Декабря, 2011 - 09:07:20
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Мне надо сложить(накапливать в цикле) числа с 3 знаками после запятой после запятой.
Вот так неверно (только целые складываются):

Тот же вопрос,но еще мне надо накапливать числа с 1 знаком после запятой.
Спасибо
 
 Top
DlTA
Отправлено: 09 Декабря, 2011 - 09:16:59
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




PHP хренова обрабатывает дробные числа,
если у вас огранчиенная точность (2 знака после ,)
то проще работать увеличив число к целому

2.86 => 286 накапливать сколько надо
а потом вернуть к нужной системе
286 => 2.86
 
 Top
snikers987
Отправлено: 09 Декабря, 2011 - 09:28:13
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $k = 10;
  3. $arr = array(1.656, 1.653,8.457);
  4. for($i=0; $i<3; $i++){
  5. $tmp[] = $k + $arr[$i];
  6. }
  7.  
  8. var_dump($tmp);
  9. /*array(3) { [0]=> float(11.656) [1]=> float(11.653) [2]=> float(18.457) }*/
  10.  
  11. ?>

Не?

(Отредактировано автором: 09 Декабря, 2011 - 09:29:33)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
moroz
Отправлено: 09 Декабря, 2011 - 09:41:47
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




В приведенном примере идет накапливание дробных данных.Я дополню так:У меня в таблице (MySQL) данные вводятся в виде дробных чисел.В одном столбце-данные с 3 знаками после запятой,а в другом столбце-с 1 знаком после запятой.
Не точка,а ЗАПЯТАЯ.
Вопрос:как мне сложить эти данные?
Я изменю для примера данные:
PHP:
скопировать код в буфер обмена
  1.  
  2. $a=45,456;
  3. $b=12,178;
  4. echo "$a+$b";

В этом случае результат-только целые числа.Дробные отсутствуют.
 
 Top
Мелкий Супермодератор
Отправлено: 09 Декабря, 2011 - 09:47:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




moroz пишет:
Не точка,а ЗАПЯТАЯ.

А должна быть не запятая, а точка.
Заменяете запятую на точку и явным или неявным приведением к float будут работать математические выражения.


-----
PostgreSQL DBA
 
 Top
Dezmont
Отправлено: 09 Декабря, 2011 - 10:00:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




Можете вот так сделать:
PHP:
скопировать код в буфер обмена
  1. $a='11,111';
  2. $b='22,222';
  3. $a1=strtr($a,',','.');
  4. $b1=strtr($b,',','.');
  5. echo (float)$a1+(float)$b1;
 
 Top
snikers987
Отправлено: 09 Декабря, 2011 - 10:00:44
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




moroz в том что у вас не правильно организованы данные, php не виноват.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
moroz
Отправлено: 09 Декабря, 2011 - 10:46:19
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




спасибо.проблема решена.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB