zoukankan      html  css  js  c++  java
  • double 类型转化为Integer类型 ---DecimalFormat

    假设x是你要转换的double类型变量:

    不进行四舍五入操作: (int)x

    进行四舍五入操作: Integer.parseInt(new java.text.DecimalFormat("0").format(x));

    DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够分析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。

    DecimalFormat 包含一个模式 和一组符号

    符号含义:

    符号     位置     本地化?     含义
    0     数字     是     阿拉伯数字
    #     数字字     是     阿拉伯数字,如果不存在则显示为空
    .     数字     是     小数分隔符或货币小数分隔符
    -     数字     是     减号
    ,     数字     是     分组分隔符
    E     数字     是     分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。
    ;     子模式边界     是     分隔正数和负数子模式
    %     前缀或后缀     是     乘以 100 并显示为百分数
    /u2030     前缀或后缀     是     乘以 1000 并显示为千分数
    ¤(/u00A4)     前缀或后缀     否     货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。
    '     前缀或后缀     否     用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o''clock"。

    例子:

    [java] view plain copy

        DecimalFormat df1 = new DecimalFormat("0.0");   
        DecimalFormat df2 = new DecimalFormat("#.#");   
        DecimalFormat df3 = new DecimalFormat("000.000");   
        DecimalFormat df4 = new DecimalFormat("###.###");   
        System.out.println(df1.format(12.34));   
        System.out.println(df2.format(12.34));   
        System.out.println(df3.format(12.34));   
        System.out.println(df4.format(12.34));   

    运行结果:
    12.3
    12.3
    012.340
    12.34  

    [java] view plain copy

        DecimalFormat format = new DecimalFormat("###,####.000");   
        System.out.println(format.format(111111123456.1227222));   
          
        Locale.setDefault(Locale.US);   
        DecimalFormat usFormat = new DecimalFormat("###,###.000");   
        System.out.println(usFormat.format(111111123456.1227222));   
          
        DecimalFormat addPattenFormat = new DecimalFormat();   
        addPattenFormat.applyPattern("##,###.000");   
        System.out.println(addPattenFormat.format(111111123456.1227));   
          
        DecimalFormat zhiFormat = new DecimalFormat();   
        zhiFormat.applyPattern("0.000E0000");   
        System.out.println(zhiFormat.format(10000));   
        System.out.println(zhiFormat.format(12345678.345));   
          
        DecimalFormat percentFormat = new DecimalFormat();   
        percentFormat.applyPattern("#0.000%");   
        System.out.println(percentFormat.format(0.3052222));   

    运行结果 :
    1111,1112,3456.123
    111,111,123,456.123
    111,111,123,456.123
    1.000E0004
    1.235E0007
    30.522%
    如果使用具有多个分组字符的模式,则最后一个分隔符和整数结尾之间的间隔才是使用的分组大小。所以 "#,##,###,####" == "######,####" == "##,####,####"。

  • 相关阅读:
    Palindrome Linked List 解答
    Word Break II 解答
    Array vs Linked List
    Reverse Linked List II 解答
    Calculate Number Of Islands And Lakes 解答
    Sqrt(x) 解答
    Find Median from Data Stream 解答
    Majority Element II 解答
    Binary Search Tree DFS Template
    188. Best Time to Buy and Sell Stock IV
  • 原文地址:https://www.cnblogs.com/zt007/p/6022596.html
Copyright © 2011-2022 走看看