Java保留有效小数与百分数
Java保留有效小数与百分数
1.有效小数
/**
* 保留有效小数
* @param targetForm 目标形式
* @param originNum 初始数字
* @return 有效小数
*/
public String getSignificantDecimal(String targetForm, String originNum) {
DecimalFormat decimalFormat = new DecimalFormat(targetForm);
String ans = decimalFormat.format(new BigDecimal(originNum));
return ans;
}
2.有效百分数
/**
* 保留有效百分数
* @param targetForm 目标形式
* @param originNum 初始数字
* @return 有效百分数
*/
public String getPercentage(String targetForm, String originNum) {
DecimalFormat decimalFormat = new DecimalFormat(targetForm);
String ans = decimalFormat.format(new BigDecimal(originNum).multiply(new BigDecimal("100"))) + "%";
return ans;
}
3.使用演示
- 原始数字为1,需要保留3位小数
public class Main {
public static void main(String[] args) {
// 目标形式
String targetForm = "0.000";
// 原始数字
String originNum = "1";
Main main = new Main();
System.out.println(main.getSignificantDecimal(targetForm, originNum));
}
/**
* 保留有效小数
* @param targetForm 目标形式
* @param originNum 初始数字
* @return 有效小数
*/
public String getSignificantDecimal(String targetForm, String originNum) {
DecimalFormat decimalFormat = new DecimalFormat(targetForm);
String ans = decimalFormat.format(new BigDecimal(originNum));
return ans;
}
/**
* 保留有效百分数
* @param targetForm 目标形式
* @param originNum 初始数字
* @return 有效百分数
*/
public String getPercentage(String targetForm, String originNum) {
DecimalFormat decimalFormat = new DecimalFormat(targetForm);
String ans = decimalFormat.format(new BigDecimal(originNum).multiply(new BigDecimal("100"))) + "%";
return ans;
}
}
得到结果:1.000
- 原始数字为1.35,需要保留1位小数
public class Main {
public static void main(String[] args) {
// 目标形式
String targetForm = "0.0";
// 原始数字
String originNum = "1.35";
Main main = new Main();
System.out.println(main.getSignificantDecimal(targetForm, originNum));
}
}
得到结果1.4
- 原始数字为1,需要转成100.0%
public class Main {
public static void main(String[] args) {
// 目标形式
String targetForm = "0.0";
// 原始数字
String originNum = "1";
Main main = new Main();
System.out.println(main.getPercentage(targetForm, originNum));
}
}
- 原始数字为0.798,需要转成不带小数的百分数
public class Main {
public static void main(String[] args) {
// 目标形式
String targetForm = "0";
// 原始数字
String originNum = "0.798";
Main main = new Main();
System.out.println(main.getPercentage(targetForm, originNum));
}
结果为80%
补充说明
需要import这两个包
import java.math.BigDecimal;
import java.text.DecimalFormat;