第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

價格為什么不都使用BigDecimal?

此處和前面涉及價格的地方,Dao層和庫里的類型是Double,Service和Controller層是BigDecimal,為什么不全都用BigDecimal?從庫中取出到Dao層Double不會丟精嗎?

正在回答

3 回答

老師想都用BigDecimal的,奈何數(shù)據(jù)庫不支持啊。Service和Controller層是可控的,自己寫的Model類,當(dāng)然用BigDecimal了。Dao層類是mybatis-generator插件生成的,沒法用BigDecimal,因為Mysql數(shù)據(jù)庫沒有這個數(shù)據(jù)類型。當(dāng)然你可以認為Mysql的Decimal可以和Java的BigDecimal一致,問題是,mybatis-generator把Mysql的Decimal生成了Long類型,明顯不適合做價格字段。

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

浪潮之巔 提問者

嗯嗯 ,你這一說想起來了,生成的字段是Long的。多謝
2018-12-26 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕妹5204827 回復(fù) 浪潮之巔 提問者

那為什么不都設(shè)置成double呢
2018-12-26 回復(fù) 有任何疑惑可以回復(fù)我~
#3

浪潮之巔 提問者 回復(fù) 慕妹5204827

double運算會丟精,不準(zhǔn)確。
2018-12-27 回復(fù) 有任何疑惑可以回復(fù)我~

一般人民幣單位都是分!?。。。。。∮肔ong 不會有精度的問題,用String 也可以~

0 回復(fù) 有任何疑惑可以回復(fù)我~

因為老師數(shù)據(jù)庫decimal(10,0)這樣寫的,所以生成實體類是Long。

如果數(shù)據(jù)庫設(shè)計為這樣:?

`price` decimal(10,2) DEFAULT NULL,

生成實體類會是

private?BigDecimal?price;

不是mybatis自動生成代碼的鍋。

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

龍蝦三少

哈哈,是的,我也發(fā)現(xiàn)這個問題了,不過金額類的字斷強烈建議定義成long用分表示,這樣可以在用java代碼過程中自己封裝Money類,避免很多精度錯誤造成的資損問題
2018-12-26 回復(fù) 有任何疑惑可以回復(fù)我~
#2

李鑫鑫lxx 回復(fù) 龍蝦三少

為啥用 long ??? 不太明白
2019-01-02 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

價格為什么不都使用BigDecimal?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號