У меня есть ситуация, которую я не могу изменить: одна таблица базы данных (таблица A) принимает 6 знаков после запятой, а связанный столбец в другой таблице (таблица B) имеет только 3 десятичных знака.
Мне нужно скопировать из A в B, но если в A больше трех знаков после запятой, дополнительные данные будут потеряны. Я не могу изменить определение таблицы, но могу добавить обходной путь. Итак, я пытаюсь узнать, как проверить, имеет ли десятичная дробь более 3 знаков после запятой или нет?
например,
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 (десятичное значение) {}
функция?