日期:2014-05-20  浏览次数:21092 次

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

------解决方案--------------------
既然有提取整数的方法,那原数减去整数部分不就是小数部分了?
或者:
double d =l -(int)l;
------解决方案--------------------
你可以将它先转化为string类型的变量,然后通过string中的substring进行截取..得到小数点以及后面的小数部分...不过这样可能很麻烦...例如你上面的.567,再通过 "0 "+ ".567 "应该能得到
"0.567 ",再通过string中的方法将它转成long型的...给你做个参考..应该还有更优的方法可以实现~~~
------解决方案--------------------
long l=1234.567L; ????
float/double l=1234.567L; !!!

问题方法如上(F1,2)
------解决方案--------------------
L是长整型吧,怎么会有小数部分???
------解决方案--------------------
可以先转换为String 然后用spilt( ". ")进行拆分。可以得到整数和小数部分。
------解决方案--------------------
用spilt( ". ")进行拆分
------解决方案--------------------
/**
*
* @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();
}