钱,有关钱的问题真多,请赐教(50分)

  • 主题发起人 主题发起人 lfq
  • 开始时间 开始时间
L

lfq

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近在写一个财务软件,发现对货币类型的数据知之甚少,以下是我的问题:
1.paradox中的Money数据类型是如何存储和计算的?
2.Object Pascal中的currency数据类型是如何存储和计算的?怎么用?
3.在dbgrid中输入Money类型的字段时,可以输入多位小数,但显示时只显示两
位小数(实际存储的数值也不是两位小数),这样一来,看到的数字和实际数
字不符,在最比较时就会发生表里不一的情况,请问如何限制用户只能输入
两位数字(或者使实际存储的数值和显示的数值一致)?
4.财务软件中,作金额的合计和平均处理时如何保证小数点后只有两位数字,如何
保证精度?
5.currency类型的数据和其他类型数据相互转换时如何保证精度?

可怜,问题很多,意尤未尽,总之,请各路高手就此方面的问题畅抒己见。
 
为什么没人回答?
 
1:
Paradox money fields, like number fields, can contain only numbers.
They can hold positive or negative values. But by default, money
fields are formatted to display decimal places and a money symbol.

2:
Currency is a fixed-point data type that minimizes rounding errors in
monetary calculations. It is stored as a scaled 64-bit integer with
the four least-significant digits implicitly representing decimal
places. When mixed with other real types in assignments and
expressions, Currency values are automatically divided or multiplied
by 10000.

3:
用editMast

4:
计算后自己四舍五入
例如: int(x*100+0.5)/100

5:
知道2自然就知道了.
 
我也想知道
金额合计时如何保证小数点后只有两位数字?如何保证精度?
我自己一直用四舍五入,每次都要编个例程,好象挺笨的

有没有更好的方法?望高手赐教
 
round(x*100.0)/100.0
 
接受答案了.
 
后退
顶部