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