如何使用Hibernate坚持价格信息



在SQL中,将资金量存储在DECIMAL(10,2)类型的列中是一种通常的做法。但是,在冬眠映射方面,我希望避免将值映射到浮点数。有没有办法将列映射到包含几美分数的整数?

使用十进制(10,2)赚钱的做法很糟糕。同样,使用货币浮点值的实践是一种猴子技术(如在IN中,只有猴子认为将固定点值存储使用非脱离,浮点数)。

)。

相反,请确定您需要存储的最小货币价值,例如1/1000欧元,并将货币作为该价值不可或缺的倍数。继续此示例,价值2.57欧元将由2570在货币列中代表。

金钱数学应始终以整体值进行。

旁注:

猴子证明:

float value1 = .1;
float value2 = .2;
float value3 = value1 + value2;
if (value3 == .3)
    printf ("m1. you are not a monkey");
else
    printf ("m2. you are a monkey.  learn something about floating point representation");

消息M1永远不会显示

最新更新