日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java中BigDecimal的常见用法

發(fā)布時(shí)間:2025/4/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中BigDecimal的常见用法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019-06-14?11:05:53

一、精度問(wèn)題

二、加減乘除

三、大小比較

四、小數(shù)位數(shù)及四舍五入規(guī)則

五、mysql數(shù)據(jù)庫(kù) 設(shè)計(jì)

?

精度問(wèn)題:

示例1

問(wèn), 結(jié)果是多少? 0.01?

No! 結(jié)果是0.009999999999999998!

為什么會(huì)這樣呢? 因?yàn)閒loat和double都是浮點(diǎn)數(shù), 都有取值范圍, 都有精度范圍. 浮點(diǎn)數(shù)與通常使用的小數(shù)不同, 使用中, 往往難以確定. 常見(jiàn)的問(wèn)題是定義了一個(gè)浮點(diǎn)數(shù), 經(jīng)過(guò)一系列的計(jì)算, 它本來(lái)應(yīng)該等于某個(gè)確定值, 但實(shí)際上并不是!

金額必須是完全精確的計(jì)算, 故不能使用double或者float, 而應(yīng)該采用java.math.BigDecimal.

加減乘除:

兩個(gè)BigDecimal值應(yīng)該怎樣進(jìn)行加減乘除呢? +, -, *, / 這樣寫(xiě)嗎? 不!

加減乘除使用了英文的加減乘除, 即add, substract, multiply和divide

?

大小比較:

兩個(gè)BigDecimal值比較使用compareTo方法, 比較結(jié)果有-1, 0, 1, 分別表示小于, 等于, 大于; 對(duì)于0, 可以使用BigDecimal.ZERO表示!

?

小數(shù)位數(shù)及四舍五入規(guī)則:

在項(xiàng)目中, 涉及到稅費(fèi)的計(jì)算, 計(jì)算的結(jié)果可能是小數(shù)點(diǎn)后面十幾位, 那么怎么進(jìn)行結(jié)算呢? 這就需要四舍五入這種東東了

其中setScale的第一個(gè)參數(shù)是小數(shù)位數(shù), 這個(gè)示例是保留2位小數(shù), 后面是四舍五入規(guī)則.

?

mysql數(shù)據(jù)庫(kù)設(shè)計(jì):

BigDecimal在進(jìn)行入庫(kù)時(shí), 數(shù)據(jù)庫(kù)選擇decimal類(lèi)型, 長(zhǎng)度可以自定義, 如18; 小數(shù)點(diǎn)我們項(xiàng)目中用的是2, 保留2位小數(shù). 此外還要注意的就是默認(rèn)值, 一定寫(xiě)成0.00, 不要用默認(rèn)的NULL, 否則在進(jìn)行加減排序等操作時(shí), 會(huì)帶來(lái)轉(zhuǎn)換的麻煩!

balance decimal(18,2) DEFAULT ‘0.00’ COMMENT ‘賬戶余額’,
---------------------
作者:is_Min
來(lái)源:CSDN
原文:https://blog.csdn.net/qq_34581118/article/details/79799097
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

轉(zhuǎn)載于:https://www.cnblogs.com/wanfeng1937/p/11022363.html

總結(jié)

以上是生活随笔為你收集整理的java中BigDecimal的常见用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。