2013-03-20 176 views
-4

我想將數據庫(int)存儲在數據庫中,原因是round問題。將貨幣/貨幣轉換爲Cent,反之亦然

將Double money值轉換爲cent的算法是什麼?反之亦然?

+0

多一點細節/上下文會有所幫助。 – Whymarrh 2013-03-20 18:06:57

+0

您能提供一個存儲貨幣值的示例嗎? – 2013-03-20 18:07:15

+1

錢給分?從美元?你的意思是,乘以100和四捨五入? – 2013-03-20 18:07:16

回答

1

如果你有以下double值,

double allTheMoney = 123.54; // as in $123 + 54 cents 

您可以用得到它美分,

int allCents = (int)(allTheMoney * 100); 
// or using long 
long allCents = Math.round(allTheMoney * 100); 
+0

我比我更快... – ITroubs 2013-03-20 18:09:40

+0

唉,不可避免的比賽成爲第一個答案。 – Whymarrh 2013-03-20 18:10:46

+0

@ITROUBS都不應該有IMO回答。如在,幫助吸血鬼警報。 – 2013-03-20 18:10:53

0

這是快速簡便:

double val = 1.45; 
int cents = (int)(val * 100); 

int cents = (int)Math.round(val*100); 
+1

這不輪。由於存儲浮點值的方式,實際的double值可能是1.4499999,這會將其轉換爲144美分。 – 2013-03-20 18:11:46

+0

我知道。這也是爲什麼沒有人應該加倍努力的原因... – ITroubs 2013-03-20 18:12:36

+0

因此,如果我記得正確的話,使用'(val + 0.005D)* 100D'。 – 2013-03-20 18:14:18