我怎样才能只显示double值的三位数

时间:2014-05-05 14:59:11

标签: java

我有两个值,如0.0345333或1.0897777,我想在Java中将它们转换为0.034和1.089?

我该怎么做?

我想转换这些值,而不是打印它们,因为我需要它来进行计算。

我发现以下方式,但我正在寻找简单的方法。 double score=(tff* idf); DecimalFormat df = new DecimalFormat("#.###"); p.score=Double.parseDouble(df.format(score));

3 个答案:

答案 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);
相关问题