小羊不想掉头发 2021-04-04 15:10 采纳率: 100%
浏览 35
已采纳

有一个方法看不懂 球球大神帮忙看一下

public StringBuffer change(double d) {
 			StringBudffer str=new StringBuffer(String.valueOf(d));
 			for (int i=str.indexOF(".")-3;i>0;i=i-3) {
 				str.insert(i,',');
 			}
 			return str;
 		}

不明白怎么用

是什么

  • 写回答

4条回答 默认 最新

  • CSDN专家-三岁丫 2021-04-04 16:31
    关注

    如果从代码意图上看应该是想要将金额插入分割的,号,但是实际上这段代码充满了很多小的问题,不光编译通不过,而且如果double 的数字较大的情况下,还会有意料之外的效果。

    
    // 给你稍微改了改
      public static StringBuffer change(double d) {
        // 用 NumberFormat 保证使用非科学计数法来.toString
        // 如果直接使用 String.toString(d) 的话,可能会有 E 符号
        NumberFormat nf = NumberFormat.getInstance();
        nf.setGroupingUsed(false);
        StringBuffer str=new StringBuffer(nf.format(d));
        for (int i=str.indexOf(".")-3;i>0;i=i-3) {
          str.insert(i,',');
        }
        return str;
      }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?