java吧 关注:1,265,572贴子:12,768,219
  • 34回复贴,共1

【新手求教】数字格式化代码求教

只看楼主收藏回复

import java.text.*;
public class DecimalFormatSimpleDemo {
// 使用实例化对象时设置格式化模式
static public void SimgleFormat(String pattern, double value) {
// 实例化DecimalFormat对象
DecimalFormat myFormat = new DecimalFormat(pattern);
String output = myFormat.format(value); // 将数字进行格式化
System.out.println(value + " " + pattern + " " + output);
}
// 使用applyPattern()方法对数字进行格式化
static public void UseApplyPatternMethodFormat(String pattern, double value) {
DecimalFormat myFormat=new DecimalFormat();//实例化DecimalFormat对象
myFormat.applyPattern(pattern); // 调用applyPatten()方法设置格式化模板
System.out
.println(value + " " + pattern + " " + myFormat.format(value));
}
public static void main(String[] args) {
SimgleFormat("###,###.###", 123456.789);// 调用静态SimgleFormat()方法
SimgleFormat("00000000.###kg", 123456.789); // 在数字后加上单位
// 按照格式模板格式化数字,不存在的位以0显示
SimgleFormat("000000.000", 123.78);
// 调用静态UseApplyPatternMethodFormat()方法
UseApplyPatternMethodFormat("#.###%", 0.789); // 将数字转换为百分数形式
// 将小数点后格式化为两位
UseApplyPatternMethodFormat("###.##", 123456.789);
// 将数字转化为千分数形式
UseApplyPatternMethodFormat("0.00\u2030", 0.789);
}
}


IP属地:广东1楼2015-09-01 22:08回复
    第五行:String output = myFormat.format(value); // 将数字进行格式化
    请问这里是创建一个字符串output,然后把格式化后的值赋值给output吗?
    在这个代码中,如果我不用String,我用double来创建,是不是要进行包装?


    IP属地:广东3楼2015-09-01 22:11
    回复
      2025-06-22 05:27:28
      广告

      这个函数返回值就是String类型的
      既然=号当然是赋值了
      写double的话就得用parseDouble了,不过它本来是double格式化为String再转为double。。。。。这算是搞什么
      double output = Double.parseDouble(myFormat.format(value));


      IP属地:上海4楼2015-09-01 22:43
      收起回复
        这些个函数你查查API再加上输出结果就大概可以了解什么意思了
        【第一个SimgleFormat(String pattern, double value)方法】

        调用DecimalFormat的上面这个构造方法,用你传进来的Patter创建一个DecimalFormat对象;
        然后调用昨天那个format方法将double的值格式化。
        【第二个UseApplyPatternMethodFormat(String pattern, double value)】

        调用DecimalFormat无参数的构造方法,创建一个使用默认模式和默认语言环境的符号创建一个 DecimalFormat对象
        然后调用applyPattern方法将传进来的patter模板应用于double值,将其格式化。
        所以patter就是一个模版,这俩个方法的输出结果都与patter有关的


        IP属地:上海6楼2015-09-02 08:45
        回复
          难道 你么发现 有个错误 SimgleFormat 那个是错误的 正确的是 SimpleFormat.


          10楼2016-11-22 21:31
          回复
            import java.text.DecimalFormat;
            public class DecimalFormatSimpleDemo{
            static public void SimpleFormat(String pattern,double value){//使用实例化对象时设置格式化模式
            DecimalFormat myFormat=new DecimalFormat(pattern);
            String output=myFormat.format(value);//将数字进行格式化
            System.out.println(value+" "+pattern+" "+output);
            }
            //使用applyPattern()方法对数字进行格式化
            static public void UseApplyPatternMethodFormat(String pattern,double value){
            DecimalFormat myFormat=new DecimalFormat();//实例化DecimalFormat对象
            myFormat.applyPattern(pattern);//调用applyPattern()方法设置格式化模板
            System.out.println(value+" "+pattern+" "+myFormat.format(value));
            }
            public static void main(String[] args) {
            SimpleFormat("###,###.###",123456.789);//调用静态SimpleFormat()方法
            SimpleFormat("00000000.###kg",123456.789);//在数字后加上单位
            SimpleFormat("000000.000",123.78);//按照格式模板格式化数字,不存在的位以0显示
            UseApplyPatternMethodFormat("#.###%",0.789);//调用静态UseApplyPatternMethodFormat()方法
            UseApplyPatternMethodFormat("###.##",123456.789);//将小数点后格式化为两位
            UseApplyPatternMethodFormat("0.00\u2030",0.789);//将数字转化为千分数形式
            }
            }
            以上是 源码 为啥 我在myesciple 中出现了和教材中不同的结果


            11楼2016-11-22 21:35
            回复
              这是我自己 打印的结果

              这是教材的
              为什么 出现了不一样的结果!


              12楼2016-11-22 21:41
              收起回复


                13楼2017-04-10 18:28
                回复
                  2025-06-22 05:21:28
                  广告
                  代码敲到SimgleFormat就显示错误 是什么意思


                  IP属地:广东14楼2018-04-24 21:00
                  回复