Обработка десятичных чисел в mysqli

Мне нужно поставить цену некоторых элементов внутри таблицы mysql. При создании таблицы я использую DECIMAL(10,2), так как мне не нужно больше двух цифр после запятой (например: 123,45 будет приниматься в качестве входных данных, но 123 456 будет округлено до 123,45 с помощью PHP).

Первый вопрос: используя DECIMAL(10,2), как узнать, сколько чисел может быть сохранено перед запятой? Я знаю, что это не 10, поскольку 10 - это просто точность, которую использует Mysql при выполнении математики с этими числами: так, где указана длина самого числа?

Второй вопрос: я использую PHP для округления пользовательского ввода, чтобы он соответствовал типу данных (поплавок с двумя номерами после запятой). Как использовать mysqli->bind_param для вставки этих данных? Какой из этих типов данных (из документации) принят bind_param, следует ли использовать (и возможно: почему)?

Character   Description
i   corresponding variable has type integer
d   corresponding variable has type double
s   corresponding variable has type string
b   corresponding variable is a blob and will be sent in packets

Ответ 1

DECIMAL(10,2) означает, что 10 - максимальное количество цифр, которые будут использоваться. 2 указывает, что в правой части десятичного числа есть два. Значит, это означает, что на левой стороне слева находятся цифры 8. См. руководство

Что касается типа данных, вы должны использовать double, поскольку это для десятичных чисел.

Integer не имеет десятичных символов, поэтому он будет заполнять все числа. String - это текстовые, а не числовые значения. Blob для двоичного большого объекта, EG: изображение