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