2016-12-16 33 views
1

我正在开发一个应用程序,其中我得到了像声明中提到的价值,我的价值是双倍的。我需要在“。”之后得到三位数值。 我怎样才能做到这一点如何修剪以双精度显示的值?

9.690000000000001 
+0

请看这里http://stackoverflow.com/questions/10959424/show-only-two-digit-after-decimal –

回答

0

您可以使用DecimalFormat

Double doub=Double.parseDouble(new DecimalFormat("##.###").format(9.690000000000001)); 

如果第三位是零它只会返回最多两个小数位。

0

使用String.format像:

Double formattedDouble = Double.parseDouble(String.format("%.2f", doubleVariable)); 
Log.d(getClass().getSimpleName(), "Formatted double is: " + formattedDouble); 

%.2f轮可变,小数点后两位。

或者,您可以使用以相同方式工作的java.util.Formatter

此外,

DecimalFormat df = new DecimalFormat("#.00"); 

注意00的,意思正好两位小数。

1

可以使用String.format("%.3f", d)

这将圆你一倍,达到3位小数。

0

请试试这个:

double d = 9.690000000000001; 
d = (double)Math.round(d * 1000)/1000.0; 
0

有三种方法可以做到这一点:

  • get_double =(双)(Math.round(result_value * 1000)/1000.0)
  • 的DecimalFormat df =新的DecimalFormat(“#。###”); get_double = Double.ParseDouble(df.format(result_value));
  • BigDecimal bd = new BigDecimal(result_value); BigDecimal bd2 = bd.setScale(3,BigDecimal.ROUND_HALF_UP); get_double = Double.ParseDouble(bd2.ToString());