JAVA四舍五入(小数点后保留两位数字)[

来源:互联网 发布:mindmanager 2016 mac 编辑:程序博客网 时间:2024/05/05 12:52

public class test {
/**
* @param str
* 处理参数
* @param num
* 保留小数位数
* @return 返回值
*/
public static String RoundOf(String str, int num) {
if (str.indexOf(".") > -1) {
String str1 = str.substring(str.indexOf(".") + 1, str.indexOf(".")
+ 1 + str.length() - (str.indexOf(".") + 1));
int i = 0;
if (num < 0)
num = 0; // 如果指定要保留的小数位小于零,则初始化为零
if (str1.length() > num) {
if (Integer.valueOf(str1.substring(num, num + 1)) > 4) {
int val = 0;
val = Integer.valueOf(str1.substring(0, num + 1))
+ (10 - Integer.valueOf(str1
.substring(num, num + 1)));
if (String.valueOf(val).length() > (num + 1)) {
i = 1;
str1 = String.valueOf(val).substring(1, num + 1);
} else {
str1 = String.valueOf(val).substring(0, num);
}
} else {
str1 = str1.substring(0, num);
}
if (str.indexOf(".") > 0) {
String str2 = str.substring(0, str.indexOf("."));
if (num > 0) {
str = String.valueOf(Integer.valueOf(str2) + i) + "."
+ str1;
} else {
str = String.valueOf(Integer.valueOf(str2) + i);
}
} else {
if (num > 0) {
str = String.valueOf(i) + "." + str1;
} else {
str = String.valueOf(i);
}
}
} else if (str1.length() < num) {
for (int n = 0; n < (num - str1.length()); n++) {
str = str + "0";
}
}
}
return str;
}
public static void main(String[] args) {
test test=new test();
System.out.println(test.RoundOf(String.valueOf(3.15965), 2));
}
}