У меня есть ситуация, которую я не могу изменить: одна таблица базы данных (таблица A) принимает 6 десятичных знаков, в то время как связанный столбец в другой таблице (таблица B) имеет только 3 десятичных знака.
Мне нужно скопировать из A в B, но если у A больше 3 знаков после запятой, дополнительные данные будут потеряны. Я не могу изменить определение таблицы, но я могу добавить обходной путь. Поэтому я пытаюсь выяснить, как проверить, имеет ли десятичное число больше 3 десятичных знаков или нет?
например
Table A
Id, Qty, Unit(=6dp)
1, 1, 0.00025
2, 4000, 0.00025
Table B
Id, TotalQty(=3dp)
Я хочу иметь возможность узнать, имеет ли блок Qty * из таблицы A более 3 десятичных знаков (строка 1 не будет работать, строка 2 пройдет):
if (CountDecimalPlaces(tableA.Qty * tableA.Unit) > 3)
{
return false;
}
tableB.TotalQty = tableA.Qty * tableA.Unit;
Как мне реализовать функцию CountDecimalPlaces(decimal value) {}
?