如何修剪双倍显示的值?

时间:2016-12-16 06:23:00

标签: java android

我正在开发一个应用程序,其中我正在获得声明中提到的值,并且我有一个double的值。我需要在“。”之后获得三位数值。 我怎么能这样做

9.690000000000001

5 个答案:

答案 0 :(得分:1)

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

这会将你的双倍小数舍入到小数点后3位。

答案 1 :(得分:0)

您可以使用DecimalFormat

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

注意如果第三个数字为零,它将仅返回最多两个小数位。

答案 2 :(得分: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,意思是两位小数。

答案 3 :(得分:0)

请试试这个:

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

答案 4 :(得分:0)

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

  • get_double =(double)(Math.round(result_value * 1000)/1000.0)
  • DecimalFormat df = new 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());