$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '%$username%'") or die(mysql_error());
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
Иногда подавление запроса как @mysql_query(your query);
Посмотрите на Как справиться с точностью чисел с плавающей запятой в JavaScript?
Вот пример
function roundNumber(number, decimals) {
decimals = parseInt(decimals,10);
var dec = Math.pow(10,decimals)
console.log(dec,parseFloat(number)*dec);
number=""+Math.round(parseFloat(number)*dec+.0000000000001); // fixed the .X99999999999
return parseFloat(number.slice(0,-1*decimals) + "." + number.slice(-1*decimals))
}
var val = 43.65 * 2.5;
val+= val*0.40
console.log(val+' ~= 152.78? --> '+roundNumber(val,2).toFixed(2));
console.log('15.803 ~= 15.80? --> '+roundNumber(15.803,2).toFixed(2));
console.log('15.805 ~= 15.81? --> '+roundNumber(15.805,2).toFixed(2));
console.log('14.803 ~= 14.80? --> '+roundNumber(14.803,2).toFixed(2));
console.log('0.575 ~= 0.58? --> '+roundNumber(0.575,2).toFixed(2));
Это не имеет ничего общего с округлением как таковым, а связано с тем, как десятичные числа представлены в двоичном оборудовании.
Проверьте руководство по плавающей запятой для получения дополнительной информации об этом, а также решения / альтернативы.
Я немного подумал об этом и хотел поделиться своим решением, пусть оно не пропадает даром:
function roundNumber(number, decimals) {
var d = parseInt(decimals,10),
dx = Math.pow(10,d),
n = parseFloat(number),
f = Math.round(Math.round(n * dx * 10) / 10) / dx;
return f.toFixed(d);
}
Это не использует строковые функции или любое принудительное округление вверх или вниз.
Проверьте это здесь: http://jsfiddle.net/inti/hMrsp/4/
Изменить: исправлено, сокращалось нули в конце
раундов php до 152.78, потому что он видит 152.77499, который равен 152.775 и в конце 152.178. вы не можете использовать округленное значение из php?
Найти функцию javascript для формата номера
<script type="text/javascript">
function format_number(pnumber,decimals){
if (isNaN(pnumber)) { return 0};
if (pnumber=='') { return 0};
var snum = new String(pnumber);
var sec = snum.split('.');
var whole = parseFloat(sec[0]);
var result = '';
if(sec.length > 1){
var dec = new String(sec[1]);
dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals)));
dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals));
var dot = dec.indexOf('.');
if(dot == -1){
dec += '.';
dot = dec.indexOf('.');
}
while(dec.length <= dot + decimals) { dec += '0'; }
result = dec;
} else{
var dot;
var dec = new String(whole);
dec += '.';
dot = dec.indexOf('.');
while(dec.length <= dot + decimals) { dec += '0'; }
result = dec;
}
return result;
}
var value = format_number(newnumber,2);
</script>
Это связано с тем, что различные значения, используемые в JS (браузером) и PHP или на самом деле, сколько бит используется для хранения чисел.
вы можете заставить вашу функцию округления JS сделать это, чтобы округлить до вторая цифра Math.round(floatNumber*100)/100