X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
> Суммирование цен.
CandyDandy
CandyDandy
Topic Starter сообщение 18.3.2011, 20:22; Ответить: CandyDandy
Сообщение #1


В базе хранятся цены в формате 2.200 34.500 нужно убрать точки сложить их и вывести общий итог с точкой.

Вопрос такой как убрать точку из стоимости?
Как потом добавить её обратно?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 18.3.2011, 20:56; Ответить: adlic
Сообщение #2


Это если вам нужно сначала целое число:[PHP]$number="20.040";
$number2="20.067";

$num=$number*1000;
$num2=$number2*1000;//перевели в целые числа
$sum=$num+$num2;
$total=$sum/1000;
echo $total;[/PHP]

Еще точку можно убрать:
[PHP]
$number="20.040";
$number = explode('.',$number);// разделяем строку до и после точки и две части заносим в массив
$number = implode("",$number); //собираем все в одну строку[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
PPA-pavel
PPA-pavel
сообщение 18.3.2011, 21:13; Ответить: PPA-pavel
Сообщение #3


[PHP]
<?php
$num1 = '20.444';
$num2 = '34.500';

echo $num1 + $num2;
?>
[/PHP]

или я не понял что вы хотели?!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 18.3.2011, 21:32; Ответить: adlic
Сообщение #4


(NiKON_hb @ 18.3.2011, 23:26) *
если точка одна то подойдет...

Ага, и если после точки только нули...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
NiKON_hb
NiKON_hb
сообщение 18.3.2011, 21:48; Ответить: NiKON_hb
Сообщение #5


[PHP]
<?php
$one = "2.000";
$two = "34.000";
$int ["one"] ["do"] = intval ($one);
$int ["one"] ["posle"] = substr ($one, -3);
$int ["two"] ["do"] = intval ($two);
$int ["two"] ["posle"] = substr ($two, -3);
$int ["summ"] ["do"] = $int["one"] ["do"] + $int ["two"] ["do"];
$int ["summ"] ["posle"] = $int["one"] ["posle"] + $int ["two"] ["posle"];
if (strlen ($int ["summ"] ["posle"]) > 3) {
$int ["summ"] ["do"] = $int ["summ"] ["do"] + 1;
$int ["summ"] ["posle"] = "0" . substr ($int ["summ"] ["posle"], -2);
}
if ($int ["summ"] ["posle"] == "0") {
$int ["summ"] ["posle"] = "000";
}
echo $int ["summ"] ["do"] . "." . $int ["summ"] ["posle"];
?>
[/PHP]

Проверил считает все...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 18.3.2011, 21:54; Ответить: adlic
Сообщение #6


(NiKON_hb @ 18.3.2011, 23:48) *
А как такой вариант?

Такой вариант работает только если после точки 3 знака. Если больше - облом. Мой аналог в 4-х строках во втором посте.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
NiKON_hb
NiKON_hb
сообщение 18.3.2011, 21:55; Ответить: NiKON_hb
Сообщение #7


Апнул код постом выше...

Помоему верняк =)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 18.3.2011, 22:01; Ответить: adlic
Сообщение #8


(NiKON_hb @ 18.3.2011, 23:55) *
Апнул код постом выше...

Уже лучше, но если символов после запятой будет не три, а 4 - то этот код нужно будет переделывать в корень. А у меня просто нолики добавить в двух местах. Зачем столько писать?
PS. Числа типа [PHP]$one = "2.016";
$two = "34.051";[/PHP]
оно складывает совершенно неправильно.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
NiKON_hb
NiKON_hb
сообщение 18.3.2011, 22:09; Ответить: NiKON_hb
Сообщение #9


[PHP]
<?php
$one = "2.016";
$two = "34.051";
$int ["one"] ["do"] = intval ($one);
$int ["one"] ["posle"] = substr ($one, -3);
$int ["two"] ["do"] = intval ($two);
$int ["two"] ["posle"] = substr ($two, -3);
$int ["summ"] ["do"] = $int["one"] ["do"] + $int ["two"] ["do"];
$int ["summ"] ["posle"] = $int["one"] ["posle"] + $int ["two"] ["posle"];
if (strlen ($int ["summ"] ["posle"]) > 3) {
$int ["summ"] ["do"] = $int ["summ"] ["do"] + 1;
$int ["summ"] ["posle"] = "0" . substr ($int ["summ"] ["posle"], -2);
}
if (strlen ($int ["summ"] ["posle"]) < 3) {
$int ["summ"] ["posle"] = "0" . substr ($int ["summ"] ["posle"], -2);
}
if ($int ["summ"] ["posle"] == "0") {
$int ["summ"] ["posle"] = "000";
}
echo $int ["summ"] ["do"] . "." . $int ["summ"] ["posle"];
?>

[/PHP]

Поправил, думаю в этом случае нулей после запятой всегда 3 потому что это тысячи (цены)...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 18.3.2011, 22:27; Ответить: adlic
Сообщение #10


(NiKON_hb @ 19.3.2011, 00:09) *
Поправил, думаю в этом случае нулей после запятой всегда 3 потому что это тысячи (цены)...

Вы на пути к лучшему, но ваш код по прежнему не считает, если количество символов у этих чисел разное, как до, так и после точки. Мой код считает все. Посчитайте у кого больше строк) - но это все нужно только если делать по заданию поста, то есть сначала в целое число переводить, а потом снова добавлять точку. Если же нет, то самым простым и правильным способом - это как написал Yah.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) ExchangeRates.Pro: сравнение цен Bitcoin/Crypto обменников, бирж, P2P рынка 🚀
Поможем найти лучшие цены на обмен 34 криптовалют в 255 странах
8 ExchangeRatesPro 3127 12.2.2020, 18:46
автор: ExchangeRatesPro
Открытая тема (нет новых ответов) Ищется программист. Создать калькулятор цен на сайте
JS | DLE
0 Mukis 1674 1.4.2019, 15:24
автор: Mukis
Открытая тема (нет новых ответов) Услуги парсинга данных: товаров, описаний, цен, отзывов. Короткие сроки.
0 Defaz_mw 981 9.1.2019, 2:00
автор: Defaz_mw
Открытая тема (нет новых ответов) БУМ ЦЕН! Накрутка вк. 100 вступивших 6 рублей. Самые дешевые цены
Репосты, лайки, подписчики
22 mirun 19421 9.4.2015, 17:01
автор: nazar2292
Открытая тема (нет новых ответов) Wordpress плагин сравнения цен под CPA (Admitad/Gdeslon)
13 Gforge 10316 30.3.2015, 1:18
автор: Radichenko


 



RSS Текстовая версия Сейчас: 19.4.2024, 23:23
Дизайн