我有两个字符串change_inpoints和change_inpercentage。
我需要在两位小数后将其四舍五入。
String change_inpoints = "510.663757";
String change_inpercentage = "+0.095152%";
这是我试过的
import java.text.DecimalFormat;
public class RounditOff {
public static void main(String[] args) {
String change_inpoints = "510.663757";
String change_inpercentage = "+0.095152%";
double d_inpoints = Double.parseDouble(change_inpoints);
DecimalFormat decimal = new DecimalFormat("#.00");
System.out.println("change in points " +decimal.format(d_inpoints));
change_inpercentage = change_inpercentage.replace("+", "");
change_inpercentage = change_inpercentage.replace("-", "");
change_inpercentage = change_inpercentage.replace("%", "");
double d2_percentchange = Double.parseDouble(change_inpercentage);
DecimalFormat decimal_2 = new DecimalFormat("#.00");
System.out.println("change in percent " +decimal_2.format(d2_percentchange));
}
}
但是chnage_inpercent的问题在于我
例如,change_in百分比的当前输出为 .10
应为0.10%
请您告诉我如何以更好的方式做到这一点
答案 0 :(得分:3)
使用
new DecimalFormat("0.00");
而不是
new DecimalFormat("#.00");
as#means" Digit,zero表示缺席" 对于百分号,您可以使用%前缀/后缀(0.00%)。
Here您可以找到有关DecimalFormat的更多信息。
答案 1 :(得分:0)
只需将格式更改为
即可DecimalFormat decimal_2 = new DecimalFormat("0.00%");
这将在点之前加零,然后追加%
字符
答案 2 :(得分:0)
您可以使用:
DecimalFormat decimalFormat = new DecimalFormat("#.##%");
decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
默认的舍入模式是“HALF_EVEN”。
decimalFormat.format(change_inpercentage);