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

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;
 		}

不明白怎么用

是什么

如果从代码意图上看应该是想要将金额插入分割的,号,但是实际上这段代码充满了很多小的问题,不光编译通不过,而且如果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位插入一个逗号

是不是要整数部分要格式化输出呢

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632