数据库中的最佳货币格式

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

如果您使用的是SQL Server,则可以使用“money”类型,该类型转换为.NET中的十进制类型。

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

这是一篇很好的文章,一般解释小数和浮点逻辑。

不要使用浮动。

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

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

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

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

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

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

 int no=10000; Console.WriteLine(no.ToString("N2"));