美文网首页Java学习笔记
java 百分数、小数互转

java 百分数、小数互转

作者: else05 | 来源:发表于2018-03-08 11:07 被阅读403次

    今天用到,记录一下,供自己以后查阅

    一、百分数转Double
    // import java.text.NumberFormat;
    // import java.text.ParseException;
    try {
        // 接口返回的是Number对象,但是实际是Double类型
        Double num = (Double)NumberFormat.getInstance().parse("67.89%"); // 转换的结果是67.89
        Double num2 = (Double)NumberFormat.getPercentInstance().parse("67.89%"); // 转换的结果是0.6789
    
        System.out.println(num);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    
    二、Double转百分数
    // import java.text.NumberFormat;
    // import java.text.ParseException;
    try {
        NumberFormat percentInstance = NumberFormat.getPercentInstance();
        percentInstance.setMaximumFractionDigits(2); // 保留小数两位
        String format = percentInstance.format(0.81247); // 结果是81.25% ,最后一们四舍五入了
    
        System.out.println(num);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    

    [引用]
    NumberFormat使用 getInstance 或 getNumberInstance 来获取常规数值格式。使用 getIntegerInstance 来获取整数数值格式。使用 getCurrencyInstance 来获取货币数值格式。使用 getPercentInstance 来获取显示百分比的格式。使用此格式,小数 0.53 将显示为 53%。
    使用 setMinimumFractionDigits 之类的方法还可以控制数值的显示。如果想对格式化和解析进行更多的控制(或者给予用户更多的控制),可以尝试将从工厂方法获取的 NumberFormat 强制转换为 DecimalFormat。这适用于大多数语言环境;只是要记住将其放入一个 try 代码块中,以防遇到特殊情况。

    NumberFormat 和 DecimalFormat 的作用在于,有一些方法控制格式化,还有一些方法控制解析。将数值格式化为字符串(format),将字符串解析为数值(parse).


    参考:

    相关文章

      网友评论

        本文标题:java 百分数、小数互转

        本文链接:https://www.haomeiwen.com/subject/vymefftx.html