關(guān)于BigDecimal的相關(guān)方法

1、加法運(yùn)算

public static String add(String v1, String v2) {

?? ??? ??? ?BigDecimal b1 = new BigDecimal(v1);

?? ??? ??? ?BigDecimal b2 = new BigDecimal(v2);

?? ??? ??? ?return b1.add(b2).toString();

?? ??? ?}

2、減法運(yùn)算

public static String sub(String v1, String v2) {

?? ??? ??? ?BigDecimal b1 = new BigDecimal(v1);

?? ??? ??? ?BigDecimal b2 = new BigDecimal(v2);

?? ??? ??? ?return b1.subtract(b2).toString();

?? ??? ?}

3、乘法運(yùn)算

public static String mul(String v1, String v2) {

?? ??? ??? ?BigDecimal b1 = new BigDecimal(v1);

?? ??? ??? ?BigDecimal b2 = new BigDecimal(v2);

?? ??? ??? ?return b1.multiply(b2).toString();

?? ??? ?}

4、除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指定精度,以后的數(shù)字四舍五入

public static String div(String v1, String v2, int scale) {

?? ??? ??? ?if (scale < 0) {

?? ??? ??? ??? ?throw new IllegalArgumentException(

?? ??? ??? ??? ?"The scale must be a positive integer or zero");

?? ??? ??? ?}

?? ??? ??? ?BigDecimal b1 = new BigDecimal(v1);

?? ??? ??? ?BigDecimal b2 = new BigDecimal(v2);

?? ??? ??? ?return (b1.divide(b2, scale, 4)).toString();

?? ??? ?}

5、除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指定精度,以后的數(shù)字直接舍掉

public static String mydiv(String v1, String v2, int scale) {

?? ??? ??? ?if (scale < 0) {

?? ??? ??? ??? ?throw new IllegalArgumentException(

?? ??? ??? ??? ?"The scale must be a positive integer or zero");

?? ??? ??? ?}

?? ??? ??? ?BigDecimal b1 = new BigDecimal(v1);

?? ??? ??? ?BigDecimal b2 = new BigDecimal(v2);


?? ??? ??? ?return b1.divide(b2).setScale(scale,1).toString();

?? ??? ?}

6、精確的小數(shù)位四舍五入處理

public static double round(double v, int scale) {

?? ??? ??? ?if (scale < 0) {

?? ??? ??? ??? ?throw new IllegalArgumentException(

?? ??? ??? ??? ?"The scale must be a positive integer or zero");

?? ??? ??? ?}

?? ??? ??? ?BigDecimal b = new BigDecimal(Double.toString(v));

?? ??? ??? ?BigDecimal one = new BigDecimal("1");

?? ??? ??? ?return b.divide(one, scale,4).doubleValue();

?? ??? ?}

7、value1 與 value2作比較:不相等返回true 否則返回false

public static boolean isNotEquals(String value1,String value2){

?? ??? ??? ?try {

?? ??? ??? ??? ?if(new BigDecimal(value1).compareTo(new BigDecimal(value2)) != 0){

?? ??? ??? ??? ??? ?return true;

?? ??? ??? ??? ?}else{

?? ??? ??? ??? ??? ?return false;

?? ??? ??? ??? ?}

?? ??? ??? ?} catch (Exception e) {

?? ??? ??? ??? ?return true;

?? ??? ??? ?}

?? ??? ?}

8、str1 = str2 :true 否則:false

public static boolean eq(String str1,String str2){

?? ??? ??? ?try {

?? ??? ??? ??? ?if(new BigDecimal(str1).compareTo(new BigDecimal(str2)) == 0){

?? ??? ??? ??? ??? ?return true;

?? ??? ??? ??? ?}else{

?? ??? ??? ??? ??? ?return false;

?? ??? ??? ??? ?}

?? ??? ??? ?} catch (Exception e) {

?? ??? ??? ??? ?return false;

?? ??? ??? ?}

?? ??? ?}

9、?str1 != str2 :true 否則:false

public static boolean neq(String str1,String str2){

?? ??? ??? ?try {

?? ??? ??? ??? ?if(new BigDecimal(str1).compareTo(new BigDecimal(str2)) != 0){

?? ??? ??? ??? ??? ?return true;

?? ??? ??? ??? ?}else{

?? ??? ??? ??? ??? ?return false;

?? ??? ??? ??? ?}

?? ??? ??? ?} catch (Exception e) {

?? ??? ??? ??? ?return false;

?? ??? ??? ?}

?? ??? ?}

10、str1 > str2 :true 否則:false

public static boolean gt(String str1,String str2){

?? ??? ??? ?try {

?? ??? ??? ??? ?if(new BigDecimal(str1).compareTo(new BigDecimal(str2)) > 0){

?? ??? ??? ??? ??? ?return true;

?? ??? ??? ??? ?}else{

?? ??? ??? ??? ??? ?return false;

?? ??? ??? ??? ?}

?? ??? ??? ?} catch (Exception e) {

?? ??? ??? ??? ?return false;

?? ??? ??? ?}

?? ??? ?}

11、str1 >= str2 :true 否則:false

public static boolean egt(String str1,String str2){

?? ??? ??? ?try {

?? ??? ??? ??? ?if(new BigDecimal(str1).compareTo(new BigDecimal(str2)) >= 0){

?? ??? ??? ??? ??? ?return true;

?? ??? ??? ??? ?}else{

?? ??? ??? ??? ??? ?return false;

?? ??? ??? ??? ?}

?? ??? ??? ?} catch (Exception e) {

?? ??? ??? ??? ?return false;

?? ??? ??? ?}

?? ??? ?}

12、str1 < str2 :true 否則:false

public static boolean lt(String str1,String str2){

?? ??? ??? ?try {

?? ??? ??? ??? ?if(new BigDecimal(str1).compareTo(new BigDecimal(str2)) < 0){

?? ??? ??? ??? ??? ?return true;

?? ??? ??? ??? ?}else{

?? ??? ??? ??? ??? ?return false;

?? ??? ??? ??? ?}

?? ??? ??? ?} catch (Exception e) {

?? ??? ??? ??? ?return false;

?? ??? ??? ?}

?? ??? ?}

13、?str1 <= str2 :true 否則:false

public static boolean elt(String str1,String str2){

?? ??? ??? ?try {

?? ??? ??? ??? ?if(new BigDecimal(str1).compareTo(new BigDecimal(str2)) <= 0){

?? ??? ??? ??? ??? ?return true;

?? ??? ??? ??? ?}else{

?? ??? ??? ??? ??? ?return false;

?? ??? ??? ??? ?}

?? ??? ??? ?} catch (Exception e) {

?? ??? ??? ??? ?return false;

?? ??? ??? ?}

?? ??? ?}

14、str1 >= str2 并且 str1 < str3 :true 否則:false

public static boolean between(String str1,String str2,String str3){

?? ??? ??? ?try {

?? ??? ??? ??? ?if(new BigDecimal(str1).compareTo(new BigDecimal(str2)) >= 0 &&?

?? ??? ??? ??? ??? ??? ?new BigDecimal(str1).compareTo(new BigDecimal(str3)) < 0){

?? ??? ??? ??? ??? ?return true;

?? ??? ??? ??? ?}else{

?? ??? ??? ??? ??? ?return false;

?? ??? ??? ??? ?}

?? ??? ??? ?} catch (Exception e) {

?? ??? ??? ??? ?return false;

?? ??? ??? ?}

?? ??? ?}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 主要積累一些開發(fā)中比較 常用的工具類,部分借鑒于網(wǎng)絡(luò),主要來源于平時(shí)開發(fā)因需求而生的小工具類 13、ArithUt...
    大鴨梨leepear閱讀 733評(píng)論 0 1
  • 50道經(jīng)典Java編程練習(xí)題,將數(shù)學(xué)思維運(yùn)用到編程中來。抱歉哈找不到文章的原貼了,有冒犯的麻煩知會(huì)聲哈~ 1.指數(shù)...
    OSET我要編程閱讀 7,289評(píng)論 0 9
  • 一、String類 String類在java.lang包中,java使用String類創(chuàng)建一個(gè)字符串變量,字符串變...
    wlw_花田半畝閱讀 495評(píng)論 0 1
  • String 類的常用方法 compareTo方法 用途:比較兩字符串,返回值為整型 源碼:public int ...
    FoxLayla閱讀 542評(píng)論 0 0
  • 一:在JAVA中,有六個(gè)不同的地方可以存儲(chǔ)數(shù)據(jù): 1. 寄存器(register)。 這是最快的存儲(chǔ)區(qū),因?yàn)樗?..
    辰321閱讀 504評(píng)論 0 0

友情鏈接更多精彩內(nèi)容