gpt4 book ai didi

C# 检查小数是否有超过 3 位小数?

转载 作者:可可西里 更新时间:2023-11-01 07:48:37 26 4
gpt4 key购买 nike

我有一个我无法改变的情况:一个数据库表(表 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)

我想知道表 A 中的 Qty * Unit 是否有超过 3 位小数(第 1 行会失败,第 2 行会通过):

if (CountDecimalPlaces(tableA.Qty * tableA.Unit) > 3)
{
return false;
}
tableB.TotalQty = tableA.Qty * tableA.Unit;

我将如何实现 CountDecimalPlaces(decimal value) {} 函数?

最佳答案

您可以将四舍五入到小数点后 3 位的数字的值与原始值进行比较。

if (Decimal.Round(valueDecimal, 3) != valueDecimal)
{
//Too many decimals
}

关于C# 检查小数是否有超过 3 位小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6092243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com