我正在使用现有的 SQL Server 数据库,表列定义为 decimal(4,2)
。但是,有人要求我防止代码舍入小数位。
所以我尝试将列类型更改为 decimal
,它会自动转换为 decimal(18, 0)
,这会立即清除我现有值的任何小数部分. (很好。默认的十进制类型是整数。有什么意义?)
所以我尝试将列类型更改为 decimal(8,5)
。由于小数点后 5 位多于需要,因此这消除了舍入问题。
但是,每当我在 C# ASP.NET 应用程序中打印此值时,它的格式始终为小数点后 5 位数字(例如 12.34000
)。我不明白这一点。当我从数据库中读取值时,我将其分配给一个常规的 decimal
值。那么 decimal
值如何“知道”小数点后应该有 5 位数字呢?
更重要的是,如何显示没有尾随零的值?我猜有一种方法可以格式化值。但是,由于它在很多地方都使用过,所以如果它不自动附加尾随零会更好。如果需要,我可以更改数据库中的数据类型。
最佳答案
我将数据库列更改为float
,并将C# 变量类型设置为double
。
问题已解决。
关于c# - 从 SQL Server 数据库格式化十进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848899/