比如 int i=123456789.12  要把他变成  i= 123,456,789.12   这样的格式 
请问有什么函数,或者什么方法.

解决方案 »

  1.   

    首先, 123456789.12  不是int了。
    转化过后就是字符串,也不是int。可以自己写一个函数,加,
      

  2.   

    DecimalFormat format=new DecimalFormat("#,##0.0#");
    format.format(123456789.12);
      

  3.   

    String xx = new java.text.DecimalFormat().format(123456789.12);
    System.out.println(xx);
    出来得就是lz要得结果
      

  4.   

    用"."来取整数,split函数
    看看commons有没有每格三位插入","的函数
    apache jakarta commons项目中的lang的stringUtils工具
    不要从轮子做起.如果真的没有的话,就只能把split后的整数转成byte[]
    循环三个插入","就可以了
      

  5.   

    你是想做金钱格式的转换吧?
    用下面的方法:
    public static String doubleToCurrency(double doubleValue) {
    Object[] args = { doubleValue };
    return MessageFormat.format(
               "{0,number,¥,#,###,###,###,###,###,##0.00}", args);
    }别忘给分,^_^
      

  6.   

    doubleValue   好象这里有错误哦.这里指什么意思
      

  7.   

    我晕,这是你要传给他的数啊。
    比如是:5465565.54,那你直接象这样调用:
     doubleToCurrency(5465565.54);我 测试了,打印结果是:¥5,465,565.54
      

  8.   

    补充一下,这里的数字必须是double型的。
    再说了int i=123456789.12这是不可能的,
    int型是个整数,怎么可能带小数点。
    如果你的数字是String型的,就先转换成
    double型,再调用那方法。
      

  9.   

    NumberFormat nf = DecimalFormat.getInstance();
    System.out.println(nf.format(123456789.12));输出结果:123,456,789.12本身这种逗号分割就是我们的数字书写方式,
    所以你只要把NumberFormat本地化就可以了~有需要那么麻烦的方法吗~
      

  10.   

    double d=123456789.12;
    NumberFormat df = NumberFormat.getInstance(Locale.CHINESE);
    System.out.println(df.format(d));