За последние 24 часа нас посетили 60322 программиста и 1818 роботов. Сейчас ищут 850 программистов ...

округляет

Тема в разделе "PHP для новичков", создана пользователем Андрей12, 26 мар 2015.

  1. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    Код (Text):
    1. <?
    2. if(!isset($_SESSION['id']) and !isset($_SESSION['login'])) {
    3.  
    4. print "<html>
    5. <head>
    6. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
    7.  
    8. <script language=\"javascript\">top.location.href=\"/\";</script>
    9. <title>Перенаправление</title>
    10. </head>
    11. <body bgcolor=\"#eeeeee\" topmargin=\"0\" leftmargin=\"0\">
    12.  
    13. </body>
    14. </html>";
    15. exit;
    16. }
    17. $page = 'Бонус';
    18.  
    19. if(isset($_POST['amount'])) {
    20. $sum = sf($_POST['amount']);
    21.  
    22. if($sum > 0) {
    23. if($us_data['money'] >= $sum) {
    24. mysql_query("UPDATE tb_bonus_rezerv SET summa = summa + '$sum', vsego = vsego + '$sum' WHERE id = 1") or die(mysql_error());
    25. mysql_query("UPDATE tb_users SET money = money - '$sum' WHERE id = '$usid'") or die(mysql_error());
    26. mysql_query("INSERT INTO tb_bonus_add (user_id, login, sum, date) VALUES ('$usid', '$login', '$sum', '".time()."')") or die(mysql_error());
    27. echo '<center><font color="green">Вы успешно пополнили резерв бонуса</font></center><br>';
    28. Header("Refresh: 2, /bonus");
    29. exit();
    30. }else echo '<center><font color="red">Не достаточно средств на балансе</font></center><br>';
    31. }else echo '<center><font color="red">Не корректная сумма</font></center><br>';
    32. }
    33.  
    34.  
    35. $q = mysql_query("SELECT * FROM tb_bonus_rezerv WHERE id = 1") or die(mysql_error());
    36. $rez = mysql_fetch_assoc($q);
    37.  
    38.  
    39.  
    40.  
    41. if(isset($_GET['add'])) {
    42.  
    43. ?>
    44. <style>
    45.         .donate{
    46.             padding: 10px!important;
    47.             margin-left: 10px!important;
    48.             margin-top: 10px!important;
    49.             width: 200px;
    50.             border:6px #21aedb ridge;
    51.             float: left;
    52.             text-align: center;
    53.             position: relative;
    54.         }
    55.         </style>
    56.         <h3>Пополнить резерв бонусов <a href="/bonus/"><<Бонус</a></h3>
    57.             <div class="donate">
    58.                 <b>Резерв бонусов</b><br />
    59.         Пополнено на: <?=$rez['vsego'];?> руб<br>
    60.         В наличии: <?=$rez['summa'];?> руб<br>
    61.         <form method="post" action="">
    62.             <input type="text" style="margin-top: 5px;" size="10" value="10" maxlength="7" name="amount" />
    63.             <label></label>
    64.             <input class="buttonmail" value="Пополнить" type="submit" />
    65.         </form>
    66.         </div>
    67.         <div class="clear"></div>
    68.         <br>
    69.            
    70.                 <h3>Последние 30 пополенений</h3>
    71.                     <table  border="1">
    72.                         <tr style="background-color: #fff;">
    73.                             <th align="center" width="150" ><font color="#FFFFFF">Фермер</font></th>
    74.                             <th align="center" width="100"><font color="#FFFFFF">Сумма</font></th>
    75.                             <th align="center" width="187"><font color="#FFFFFF">Дата</font></th>
    76.                         </tr>
    77.                         <?
    78.                         $a = mysql_query("SELECT * FROM tb_bonus_add ORDER BY id DESC LIMIT 30") or die(mysql_error());
    79.                         while($s = mysql_fetch_assoc($a)) {
    80.                         ?>
    81.                     <tr style="background-color: #fff;" align="center">
    82.                         <td><a href="/wall/user/<?=$s['id'];?>" title="Смотреть стену фермера <?=$s['login'];?>!"><?=$s['login'];?></a></td>
    83.                         <td><?=$s['sum'];?></td>
    84.                         <td><?=date("d.m.Y H:i", $s['date']);?></td>
    85.                     </tr>
    86.                     <? } ?>
    87.                     </table>
    88.                    
    89.  
    90. <?
    91. return;
    92. }

    Добрый день! объясните что надо сделать! допустим ввожу число 0.97 он округляет до 1 рубля ,а если ввожу 0.96 до,0.94 вычитает из баланса. как сделать так чтоб он точную сумму вычитал с баланса?
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    используй вместо int float
     
  3. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    float(12,2) длина .... стоит уже) может длина должна быть другая?

    Добавлено спустя 14 минут 7 секунд:
    ерунда какая то) поставил 9,2 заработало,копейку каждую считает) спасибо.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
  5. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    а что лучше использовать на ваш взгляд и опыт)??
     
  6. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    по ссылке написано
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    В базе тип number он же decimal. В пыхе нет подходящего тип. Можно решить использовать отмасштабированные целые или BC math

    Добавлено спустя 2 минуты 45 секунд:
    https://github.com/sebastianbergmann/money