Warez Warezstar
10 сообщений
#16 лет назад
Ребята, мне нужно хранить десятитысячное число (20,0011) в базе MySql какой тип и с какими параметрами создавать поле??? Подойдёт ли float(10.4)??? Заранее благодарен!!!
Вадим Т.
3240 сообщений
#16 лет назад
DM-MediaGroup, а какие еще числа возможны в этом поле? То есть, какое возможно:

1. минимальное число
2. максимальное число
3. максимально возможное количество знаком после запятой
4. может ли число быть отрицательным
Warez Warezstar
10 сообщений
#16 лет назад
1. Минимальное число 0.0000
2. Максимальное: 50000,0000
3. Только 4, но чтобы если я не округлил функцией в коде до 4, чтобы это в базе не повлияло никак
4. Желательно, чтобы да!
Вадим Т.
3240 сообщений
#16 лет назад
А какие действия будут производиться с этим числом? Какова вообще природа этого числа?
Warez Warezstar
10 сообщений
#16 лет назад
Сложение, вычитание, деление, умножение. Это баланс средств!
Вадим Т.
3240 сообщений
#16 лет назад
Если это деньги, тогда FLOAT не подходит. Так как замаетесь отлавливать негативные эффекты преобразований из десятичной системы в двоичную и обратно при делении.

Тогда уж используйте DECIMAL(10,4)
Warez Warezstar
10 сообщений
#16 лет назад
В основном сложение , вычитание... Другие действия происходят вне запроса
Warez Warezstar
10 сообщений
#16 лет назад
10 что значит?
Вадим Т.
3240 сообщений
#16 лет назад
А если у нас MySQL, то для Ваших потребностей даже DECIMAL(9,4) достаточно.

DECIMAL (X,Y)

X - это максимальное количество цифр в числе, Y - максимальное количество цифр после запятой
Вадим Т.
3240 сообщений
#16 лет назад
Но при делении особое внимание уделяйте тому остатку, который обрезается. Можете использовать например "банкосвкое округление". Но еще лучше с заказчиком проконсультироваться, как поступать с остатками.

(какое-то время назад, довольно давно, был шумный судебный професс, судили программиста банка, который эти остатки начислял на свой счет)
Warez Warezstar
10 сообщений
#16 лет назад
Спасибки огромное!!! Про судебное дело я слышал