Закръгляне на число в БД

CosaNostra

Registered
Здравейте, колеги! Искам да попитам какво трябва да направя, за да НЕ ми се закръглят числата в база банни? Примерно, ако след заявка ми се получи 20.5 да ми се показва 20.5, а не 21.
Благодаря предварително!
 
Вероятно колоната ти е тип int, а не float. Int е само за цели числа.
 
Нито float в БД ми помогна, нито floor().. но не знам защо. При floor() ми извежда 6 при floor(6.4), a на мен ми трябва да ми извежда 6.4
 
Много странно...
Провери как слагаш числата в таблицата - как пишеш разделителя за дробна и цяла част:

Запетайка: ,
Точка: .
Запетайка от num lock на клавиатурата (пиша на бг): ,
Точка от num lock на клавиатурата (пиша на en): .

Пробвай с всичките, ако пак не стане най-добре дай кода, с който вкарваш числата - може там да има нещо.
 
floor() е за закръгляне на числото. При 6.8 пак ще ти излезе 6. направи си полето, float, double или decimal. И си погледни заявката, числото да не ти е в кавички '0', а да е 0. Също така си провери дължината на полето, може да е от това :?:
 
CosaNostra каза:
Нито float в БД ми помогна, нито floor().. но не знам защо. При floor() ми извежда 6 при floor(6.4), a на мен ми трябва да ми извежда 6.4
е нали искаш закръгляне бе :Д
 
niker каза:
CosaNostra каза:
Нито float в БД ми помогна, нито floor().. но не знам защо. При floor() ми извежда 6 при floor(6.4), a на мен ми трябва да ми извежда 6.4
е нали искаш закръгляне бе :Д
Прочети пак темата :D
 
@niker - НЕ искам закръгляне

Колкото и каквито опити да правя - не ми се получава както искам. Ето ми кода за заявката:

mysql_query("UPDATE `tablica` SET chislo='$desetichno2' WHERE pole='$blah'") or die (mysql_error());

Като под $desetichno имам:
$desetichno1 = "0.4";
$desetichno2 = "0.0";
 
'$desetichno2'


казах ти да махнеш тези кавички :?

едит:

Цитат:
mysql_query("UPDATE `tablica` SET chislo='$desetichno2' WHERE pole='$blah'") or die (mysql_error());


Като под $desetichno имам:
$desetichno1 = "0.4";
$desetichno2 = "0.0";

$десетично1 го слагаш в кавички. Щом го сложиш в кавички PHP го разпознава за стринг. Махни кавичките от mysql_query на $desetichno2 и махни кавичките от $desetichno2 = "0.0"

Код:
$desetichno = 0.123415;
mysql_query("UPDATE tablica SET chislo=$desetichno WHERE pole='$blah'") or die('err: '.mysql_error());
 
Влизаш в PHPMyAdmin намираш полето, в което пазиш числото, натисни на моливчето и след това на Тип вместо Int избери Float.
 
nqkafff каза:
'$desetichno2'


казах ти да махнеш тези кавички :?

едит:

Цитат:
mysql_query("UPDATE `tablica` SET chislo='$desetichno2' WHERE pole='$blah'") or die (mysql_error());


Като под $desetichno имам:
$desetichno1 = "0.4";
$desetichno2 = "0.0";

$десетично1 го слагаш в кавички. Щом го сложиш в кавички PHP го разпознава за стринг. Махни кавичките от mysql_query на $desetichno2 и махни кавичките от $desetichno2 = "0.0"

Код:
$desetichno = 0.123415;
mysql_query("UPDATE tablica SET chislo=$desetichno WHERE pole='$blah'") or die('err: '.mysql_error());
Искаш да кажеш, че ако имаш стринг от вида "128.56" в база данни ще се въведе "128"? WoW
 
nqkafff каза:
'$desetichno2'


казах ти да махнеш тези кавички :?

едит:

Цитат:
mysql_query("UPDATE `tablica` SET chislo='$desetichno2' WHERE pole='$blah'") or die (mysql_error());


Като под $desetichno имам:
$desetichno1 = "0.4";
$desetichno2 = "0.0";

$десетично1 го слагаш в кавички. Щом го сложиш в кавички PHP го разпознава за стринг. Махни кавичките от mysql_query на $desetichno2 и махни кавичките от $desetichno2 = "0.0"

Код:
$desetichno = 0.123415;
mysql_query("UPDATE tablica SET chislo=$desetichno WHERE pole='$blah'") or die('err: '.mysql_error());

Тук: $desetichno2 = 0.0, ми извежда 0, а не 0.0 :shock: :idea: :roll:

Иначе с кавички, без кавички, таблица FLOAT - ефекта е един и същ - стои си на 0, а не на 0.0

Не знам какво не правя като хората...
 
при 0.0, то си вижда, че е чиста нула и го записва като 0, ако пробваш 0.013 (направи си полето double, не float (доубле е по-чуствителен) и ако правилно си махнал кавичките, където ти казах би трябвало да работи. А ако не стане с 0.013 виж си length на полето и го промени. А ако искаш точно да ти излиза 0.0, 1.0, 2.0 ... просто си правиш проверка ако число=цяло число, покажи число.'.0'. Просто php е интелигентен и като види, че числото ти е "число.0" си го слага число, а ако има проблем с доубле и "число.0123" тогава си виж length :?: :?:
 
Така... Ако съхраняваш числото като Float имаш стойността и след десетичната точка. PHP не е Ruby където Int и Float са две различни неща. Ако искаш да ти излизат числата като 0.0 използвай number_format функцията. Пример number_format($number, 1, ".",""); т.е. дори да е 0 ще ти излиза 0.0
 
Опитай да ъпдейтваш таблицата през конзолата на mysql, и ако не стане, значи проблемът е в таблицата. Ако пък тръгне - имаш грешка в php кода.
Просто се опитай да разбереш къде е грешката, за да знаеш какво да поправяш :?:
 
Дам, с DOUBLE и число след "0"-а ( 0.01 ) вече ми го засича както трябва. Благодаря на всички за помощта!!! :?:
 

Back
Горе