|
|
|
| открыл для себя что пхп не может вычесть отрицательное число..
точнее он его вычитает но результат дает в виде -2.84217094304E-14
уже выставлял типы переменных
$bs_o = (float) $bs_operation[bs_system];
и пробовал даже модули отнимать
$bs_balance = abs($bs_b)-abs($bs_o);
всё равно не то..
чтобы сильно не мудрить, может кто подскажет как по простому сделать | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(14.01.2010 в 18:42)
| | У вас получается очень маленькое число, которое в РНР по-другому не представляется. Но его можно отформатировать:
<?
$bs_balance = -2.84217094304E-14;
printf('%.025f', $bs_balance);
|
| |
|
|
|
|
|
|
|
для: Саня
(14.01.2010 в 19:05)
| | 0 это разве маленькое число?
тут походу проблема вот в чём,
я делаю несколько таких запросов
$result = mysql_query ("SELECT SUM(`bs_store`) FROM `bs_operation` WHERE currency='$bill' AND store=3");
потом результаты таких запросов слогаю или вычитаю, очевидно что-то не нак с форматами данных.. | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(14.01.2010 в 18:42)
| | если это деньги, то их всяко в формате с плавающей точкой лучше не представлять.
Целые отрицательные (входящие в диапазон) ничем таким не грешат. | |
|
|
|
|
|
|
|
для: Trianon
(14.01.2010 в 19:32)
| | а в каком формате их лучше представлять?
в БД я сделал тип данных double | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(15.01.2010 в 11:39)
| | double - тоже формат с плавающей точкой.
INT BIGINT DECIMAL
А вообще - вот прямой параграф мануала.
http://dev.mysql.com/doc/refman/5.0/en/choosing-types.html | |
|
|
|
|
|
|
|
для: Trianon
(15.01.2010 в 12:14)
| | перечитал мануалы, решил использовать DECIMAL
всё равно при вычитании отрицательных чисел (когда эnи числа получены из запроса SELECT SUM..) получаю -5.68434188608E-14
использовать INT и при наполнении суммы умножать на 100 а потом все результаты делить на 100 как-то не очень разумно | |
|
|
|