簡體   English   中英

如何使用Hibernate保留PRICE信息

[英]How to persist PRICE information using Hibernate

在SQL中,通常將金額存儲在DECIMAL(10,2)類型的列中。 但是,當涉及到Hibernate映射時,我希望避免將值映射到浮點數。 有沒有一種方法可以將列映射到包含美分的整數?

使用十進制(10,2)賺錢的做法很糟糕。 同樣,使用浮點數作為貨幣的做法是一種猴子技術(例如,只有猴子會認為用不精確的浮點數存儲定點值是有意義的)。

相反,請確定您需要存儲的最小貨幣值,例如1/1000歐元,然后將貨幣存儲為該值的整數倍。 繼續該示例,值2.57歐元將在money欄中由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將永遠不會顯示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM