狼谷吊戏与临也:java中保留小数问题!!!

来源:百度文库 编辑:高校问答 时间:2024/04/24 18:25:40
有一个double型数字12.3659963
我想要12.37
怎么做呢

double i = 12.3659963; //设数值
int j = (int)Math.round(i * 100); //小数点后两位前移,并四舍五入
double k = (double)j / 100.00; //还原小数点后两位

double i=12.3659963;
//取两位小数
int j=(int)(i*100+0.5);
//把小数点后两位移动到个位,然后+0.5舍去小数
double k=(double)(i/100);
//重新移动到两位以后

+0.5再舍去小数就可以当作四舍五入

 
 
 
你可以调用 java.text.DecimalFormat 或者 java.math.BigDecimal 这两个类的方法。

下面的代码里 d1 和 d2 都将等于 12.37 。

import java.text.DecimalFormat;
import java.math.BigDecimal;

class c {
   public static void main( String[] args ) {

      double
      d = 12.3659963,
      d1 = new Double( new DecimalFormat( ".00" ).format( d ) ),
      d2 = new BigDecimal( d ).setScale( 2, BigDecimal.ROUND_HALF_UP ).doubleValue( );
   }
}