C # Проверить, имеет ли десятичное число более 3 десятичных знаков?

У меня есть ситуация, которую я не могу изменить: одна таблица базы данных (таблица 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 (десятичное значение) {} функция?

14
задан JK. 23 May 2011 в 02:21
поделиться