Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2013, 10:50   #1
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию mysql+php

Помогите пожалуйста разобраться, есть таблица в ней поле сумма, при регистрации пользователя сумма равна 0, в дальнейшем к ней прибавляются проценты от операций, как лучше реализовать само поле в БД???как decimal? как я понимаю decimal хранит число как строку чтобы не потерялась точность???как потом с ней работать??? нужно ли преобразовывать как то из строки в число???
kuba1981 вне форума Ответить с цитированием
Старый 13.03.2013, 11:43   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

да преобразовывать в int:
Код:
$i=(int)'123';
Кольша вне форума Ответить с цитированием
Старый 13.03.2013, 11:47   #3
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

а если будет дробное число??? 35.56
kuba1981 вне форума Ответить с цитированием
Старый 13.03.2013, 12:11   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

используйте float тип
ADSoft вне форума Ответить с цитированием
Старый 13.03.2013, 12:30   #5
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

Изначально так и делал использовал float, потом в интренете прочитал что для финансовых опреций нужно использовать decimal, поэтому и зашел в тупик как лучше сделать, в этом поле должна храниться зарплата 00.00 с точностью до сотой меняется она от процентов полученных за сделку
kuba1981 вне форума Ответить с цитированием
Старый 13.03.2013, 13:05   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

все равно придется закладывать ошибки округления до копеек
ADSoft вне форума Ответить с цитированием
Старый 13.03.2013, 14:12   #7
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

DECIMAL без вариантов, имхо. По опыту скажу, что ни для чего хорошего, кроме хранения тип FLOAT (как и DOUBLE) в MySQL не подходит. То есть если вы не собираетесь НИЧЕГО делать с числом, только выводить его, то можно хранить в FLOAT или DOUBLE. Для всего остального DECIMAL.

Не забываем, что PHP язык с динамической типизацией. Здесь это можно использовать. Ну или насильно конвертировать в float.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 13.03.2013, 18:50   #8
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

Спасибо всем большое за ответы. теперь разобрался, даже и не знал что float имеет столько проблем(только для хранения), вот ссылка может кому нибудь поможет тоже
http://tarlyun.com/mysql/xranenie-ne...hisel-v-mysql/
kuba1981 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows+Apache+PHP+MySQL: не работает расширение MySQL. Пепел Феникса Софт 10 15.04.2012 14:10
TopServer(PHP+MySQL+Apache+/etc), и обновление компонентов(в основном PHP) Пепел Феникса Софт 2 05.11.2011 14:38
что не так с php кдом или с настройками MySQL+PHP Jimmi Помощь студентам 2 27.12.2010 09:03
Php + MySQL Чародей Феникс Помощь студентам 0 29.03.2010 22:31