保留两位小数(Python和Java)

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
>>> 

猜你喜欢

转载自blog.csdn.net/u012485480/article/details/80802823
今日推荐