我的大部分申请都涉及涉及付款和利率计算的财务计算。我正在寻找如何确定最适合使用的Delphi数据类型。
如果我使用数据库存储这些值,并且我已将该数据库中的字段定义为带小数点后两位的十进制值,哪种Delphi数据类型与该方案最兼容?
在将数据存储到数据库之前,我是否应该使用Delphi中的舍入公式将结果格式化为两位小数?如果是这样,这样做的最佳做法是什么?
答案 0 :(得分:10)
如果您想进行财务计算,请不要使用任何浮点/实数类型。 Delphi有一个Currency类型,它是一个带有4位小数的定点值,应该就是你需要的。
答案 1 :(得分:10)
对于此类计算,请勿使用Real,Single或Double等浮点类型。它们的小数值不是很好,如0.01或1234.995,因为它们必须近似它们。
您可以使用货币,固定点类型,但仍然限制为4位小数。
尝试我的Decimal类型,它有28-29个位置并且具有小数指数,因此它非常适合此类计算。唯一的缺点是它不支持FPU(但是用汇编语言编写),因此它没有内置类型那么快。它与.NET中使用的Decimal类型相同(但速度稍快),与Mac上使用的类似。