c# - 从 SQL Server 数据库格式化十进制值

标签 c# sql-server decimal

我正在使用现有的 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/

相关文章:

SQL Server错误处理,判断记录是否存在,然后执行过程

binary - 将十进制转换为补码

c# - Telerik GridView : How to refresh grid view after Database change

c# - 如何使用AutoFixture实现日期限制?

c# - 如何在 C# 中不使用 indexof 方法从字符串中查找子字符串?

C#:关闭应用程序进程的进程'killing(使用taskman)

c# - 我怎么知道是否因为外键违规而引发了 SQLexception?

sql - 从选择中选择最大和第二个最大值,并将它们分组?

javascript - 将动态 JSON 中的所有小数四舍五入至小数点后 2 位

C# 数据表十进制精度