我有一種情況是無法更改的:一個數據庫表(表A)接受6個小數位,而另一個表(表B)中的相關列只有3個小數位。C#檢查一個小數是否有超過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)
我希望能夠找出是否從表A數量*單位已超過3位小數(第1行會失敗,第2行會通過):
if (CountDecimalPlaces(tableA.Qty * tableA.Unit) > 3)
{
return false;
}
tableB.TotalQty = tableA.Qty * tableA.Unit;
我將如何實現CountDecimalPlaces(decimal value) {}
函數?
+1 - 我認爲LessThan3DecimalPlaces應該LessThanOrEqualTo3DecimalPlaces :) – VoodooChild 2012-03-08 06:03:32
如果使用dec調用CountDecimalPlaces將會形成一個無限循環== 0 – 2012-08-07 10:46:50
這似乎不適用於小數點後8位 - 返回7 – Phil 2014-04-14 15:03:08