截断十进制后的数字...通过java中的内置函数

时间:2010-03-22 07:06:35

标签: java

我想通过 java (不是javascript)中的内置函数截断小数点后的数字。 例如: 69.80000000001至69.8

请指导。

2 个答案:

答案 0 :(得分:2)

Decimal Format班怎么样?

我没有对此进行过测试,但是:好的,这个应该工作:

import java.text.DecimalFormat;
import java.math.RoundingMode;
public class Test
{
   public static void main(String args[])
   {
        double i = 69.8999999999;
        DecimalFormat format = new DecimalFormat("#.#"); 
        format.setRoundingMode(RoundingMode.FLOOR);
        String s = format.format(i);
        i = Double.parseDouble(s);
        System.out.println(i); //should be 69.8
   }
}

答案 1 :(得分:1)

您可以使用BigDecimal的缩放功能:

new BigDecimal(69.80000000001).setScale(1, RoundingMode.HALF_UP).doubleValue();

这是为了进一步使用舍入值。如果您只想打印舍入值但保留原始值,则DecimalFormat是Matt所描述的正确选择。