1、加法运算
public static String add(String v1, String v2) {
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.add(b2).toString();
}
2、减法运算
public static String sub(String v1, String v2) {
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.subtract(b2).toString();
}
3、乘法运算
public static String mul(String v1, String v2) {
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.multiply(b2).toString();
}
4、除法运算。当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入
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、除法运算。当发生除不尽的情况时,由scale参数指定精度,以后的数字直接舍掉
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、精确的小数位四舍五入处理
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;
}
}