(1)原因分析:按理来说转换用的Decimal(20,0)定义的数据库中的列,存储中应该是没有小数部分的值,C#查询到的值应该也没有小数点和0。
(2)解决方案:可以使用Math.Round和int、long方法把多出的小数0去掉再转为整型输出。参考代码:
using System;
class Program
{
static void Main()
{
// 从数据库获取的decimal值
decimal valueFromDb = 1234.00m;
// 使用Math.Round()方法四舍五入,确保小数部分为0
decimal roundedValue = Math.Round(valueFromDb, 0, MidpointRounding.AwayFromZero);
// 将decimal类型转换为整数类型(int或long)
int intValue = (int)roundedValue;
long longValue = (long)roundedValue;
// 输出结果
Console.WriteLine($"Integer Value: {intValue}");
Console.WriteLine($"Long Value: {longValue}");
}
}