Java保留两位小数:
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
/**
* Created by zfr on 2018/06/25.
* Java保留小数的几种方式
*/
public class RetainTheDecimal {
/**
* 第一种方法,采用BigDecimal
* @date 2018/06/25
* @Param d 小数
* @return double
**/
public double r1(double d ){
BigDecimal bg = new BigDecimal(d);
double res = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return res;
}
/**
* 第二种方法,采用DecimalFormat
* @param
* @return
*/
public double r2(double d){
DecimalFormat df = new DecimalFormat("#.00");
double res = Double.parseDouble(df.format(d));
return res;
}
/**
* 第三种方法,采用String.format
* @param
* @return
*/
public double r3(double d){
double res = Double.parseDouble(String.format("%.2f",d));
return res;
}
/**
* 第四种方法,采用 NumberFormat
* @param
* @return
*/
public double r4(double d){
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
double res = Double.parseDouble(nf.format(d));
return res;
}
/**
* 第五种方法,采用 Math.round()
* @param d
* @return
*/
public double r5(double d){
double res = (double)Math.round(d*100)/100;
return res;
}
public static void main(String[] args){
RetainTheDecimal rd = new RetainTheDecimal();
double d = 99.985;
System.out.println(rd.r1(d));
System.out.println(rd.r2(d));
System.out.println(rd.r3(d));
System.out.println(rd.r4(d));
System.out.println(rd.r5(d));
}
}
实验结果:
99.98
99.98
99.99
99.98
99.99
Python:
>>> a = 6.346
>>> round(a,2)
6.35
>>> print("%.2f"%(a))
6.35
>>> from decimal import Decimal
>>> x = Decimal('6.346').quantize(Decimal('0.00'))
>>> print(x)
6.35
>>>