如何舍入double以获得最多n位数,包括小数点前后的数字。
格式:数字(10,8)[最多10位数字,小数点后最多8位数字。
示例:
2233.64344206d应该转到2233.643442d。
2233.64344206d小数点前有4位数字,后面有8位数字,总共12位数字,最多应该有10位数字。 所以2233.643442d是正确的舍入结果,因为它在小数点前有4位数,后面有6位数,总共10位数。
java.text.DecimalFormat适用于小数点后的数字轮。 例如,如果我想将数字四舍五入到小数点后最多4位数,那么我可以使用DecimalFormat("#0。####")
答案 0 :(得分:0)
您可以使用BigDecimal,查看小数点前需要多少位数,查看所需的总位数,并将比例设置为它们之间的差异:
public static void main(String[] args) {
double p = 2233.64344206d;
BigDecimal d = new BigDecimal(p);
int n = 10;
int integralDigits = d.toBigInteger().toString().length();
d = d.setScale(n - integralDigits, RoundingMode.HALF_EVEN);
System.out.println(d);
}
输出:2233.643442