由於經常進行較大數據的加減法計算,好多計算器都是轉換成科學技術法的,所以自己用java寫了一個
功能如下:
1,可以輸入多個帶千位分隔符的數字,進行加減法計算
2,結果展示帶千位分隔符
3,結果展示不是科學計數法的形式
代碼如下:
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
public class Calculator {
// 提供精確的加法運算
public static String add(String add1, String... add2) {
String v1;
try {
// 去掉千位分割符
v1 = new DecimalFormat().parse(add1).toString();
// 用字符串構造BigDecimal
BigDecimal sum = new BigDecimal(v1);
for (String v2 : add2) {
v2 = new DecimalFormat().parse(v2).toString();
sum = sum.add(new BigDecimal(v2));
}
// 添加千位分隔符,保留兩位小數
DecimalFormat df = new DecimalFormat("#,###.00");
String dfSum = df.format(sum);
return dfSum;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
// 精確的減法運算
public static String sub(String sub1, String... sub2) {
String v1;
try {
// 去掉千位分割符
v1 = new DecimalFormat().parse(sub1).toString();
// 用字符串構造BigDecimal
BigDecimal sum = new BigDecimal(v1);
// 減法計算
for (String v2 : sub2) {
v2 = new DecimalFormat().parse(v2).toString();
sum = sum.subtract(new BigDecimal(v2));
}
// 添加千位分隔符,保留兩位小數
DecimalFormat df = new DecimalFormat("#,###.00");
String dfSum = df.format(sum);
return dfSum;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
System.out.println(Calculator.sub("6,300,000,000.02", "2,391,000,050.00","1"));
System.out.println("-----------");
System.out.println(Calculator.add("3,908,999,949.02", "2,391,000,050.00", "1.00"));
}
}
