我有两个值,如0.0345333或1.0897777,我想在Java中将它们转换为0.034和1.089?
我该怎么做?
我想转换这些值,而不是打印它们,因为我需要它来进行计算。
我发现以下方式,但我正在寻找简单的方法。
double score=(tff* idf);
DecimalFormat df = new DecimalFormat("#.###");
p.score=Double.parseDouble(df.format(score));
答案 0 :(得分:2)
如果要显示结果,请使用。
String.format("%1$,.3f", myDouble);
但是如果你需要截断你可以使用的数字:
double number = 1.0897777;
double result = ((int)(number*1000))/1000d;//1.089
答案 1 :(得分:1)
这会将值截断为3位小数:
value = ((int)(value*1000))/1000.0;
这将舍入到小数点后3位:
value = (double)Math.round(value*1000)/1000;
例如:
double d1 = 0.0345333;
d1 = (double)Math.round(d1*1000)/1000;
System.out.println(d1); // 0.035
double d2 = 0.0345333;
d2 = ((int)(d2 *1000))/1000.0;
System.out.println(d2); // 0.034
答案 2 :(得分:1)
您也可以使用BigDecimal
BigDecimal value = new BigDecimal(1.0897777);
value = value.setScale(3, RoundingMode.DOWN);