请问一下各位:
 long l=1234.567L;
如何提取l的整数部分和小数部分,
在Math类中找了一下,好象有提取整数方法,但是却没有找到有关提取小数部分的方法?我应该怎样提取小数? 谢谢!

解决方案 »

  1.   

    既然有提取整数的方法,那原数减去整数部分不就是小数部分了?
    或者:
    double  d =l -(int)l;
      

  2.   

    你可以将它先转化为string类型的变量,然后通过string中的substring进行截取..得到小数点以及后面的小数部分...不过这样可能很麻烦...例如你上面的.567,再通过"0"+".567"应该能得到
    "0.567",再通过string中的方法将它转成long型的...给你做个参考..应该还有更优的方法可以实现~~~
      

  3.   

    long l=1234.567L;  ????
    float/double l=1234.567L; !!!问题方法如上(F1,2)
      

  4.   

    可以先转换为String 然后用spilt(".")进行拆分。可以得到整数和小数部分。
      

  5.   

    /**
     * 
     * @param value 要四舍五入的值
     * @param scale 小数点后要取的位数
     * @return
     */
    public static double round(double value,int scale){
    BigDecimal bd=new BigDecimal(value);
    //BigDecimal divisor=new BigDecimal(1);
    //BigDecimal returnValue=bd.divide(divisor, scale,BigDecimal.ROUND_HALF_UP);
    BigDecimal returnValue=bd.setScale(scale, BigDecimal.ROUND_HALF_UP   );
    return returnValue.doubleValue();
    }