数据库中的最佳货币格式

时间:2009-09-04 03:33:19

标签: c# asp.net sql-server

我的数据库中与ASP.NET Web应用程序一起使用的最佳货币格式是什么。我不确定浮点数或小数点是否更好。请注意,我不需要特定于文化的设置。

6 个答案:

答案 0 :(得分:6)

如果您使用的是SQL Server,那么您将拥有“money”类型,该类型将转换为.NET中的十进制类型。

十进制是一个128位的基数10浮点数,而不是二进制浮点数(浮点数/长数),这使得它在大多数情况下不会失去精度,不像二进制浮点数,它具有精度损失是其设计的一部分。

Here's a nice article explaining decimals and floating point logic in general.

答案 1 :(得分:5)

使用float。

十进制,规格为decimal(17, 4)可能是可以接受的。这意味着左边有“17”个位置,小数点后4位。

答案 2 :(得分:1)

在阅读了有关信用卡处理的更多信息后,我愿意尝试整数(使用美分而不是美元)。如果您使用的是金额,我会使用小数。

货币和数据类型的一个大问题是使用浮点数舍入错误,所以我会远离那些。

答案 3 :(得分:1)

我会用小数点。你想尽可能保持精确度。编码金融应用程序的人知道我在说什么,当信用卡几乎与借记卡相同但不正确时。这就是盈亏银行账户的原因。

答案 4 :(得分:1)

想和FLOAT一起代表金钱这样的金额。舍入会发生不好的事情,尤其是值被聚合,添加,操纵等等。

如果您需要小数元(即美分),那么DECIMAL是合适的选择。否则,您也可以坚持使用INTEGERS,以免造成便士问题

答案 5 :(得分:0)

int no=10000;
Console.WriteLine(no.ToString("N2"));
相关问题