数字格式化

ITDragon龙 2015-12-17 03:58:40
一些long类型的数据太长,需要加千位符,如10000 -> 10,000
DecimalFormat format = new DecimalFormat(",###");
this.showNum = Long.parseLong(format.format(showNum));

我是这样做的,结果控制太报错,说这是一个string类型数据。
请问大家是怎么给数据加千位符
...全文
162 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ITDragon龙 2015-12-18
  • 打赏
  • 举报
回复
引用 10 楼 dracularking 的回复:
[quote=引用 5 楼 qq_19558705 的回复:] [quote=引用 1 楼 rickylin86 的回复:]

public class Test{
	public static void main(String[] args){
		String num = "1646464313131313131";
		num = num.replaceAll("(?=(\\d{3})+$)",",");
		System.out.println(num);
	}
}
我想要的结果是:一个long类型数字添加千位号后还是long类型,我之前做的返回结果还是string,导致500的错。[/quote] 你要这样做是为了什么呢?在参与运算的时候加千分位,人是看不到的,人需要看的时候再加[/quote] 嗯嗯;我知道该怎么做了,谢谢
dracularking 2015-12-18
  • 打赏
  • 举报
回复
引用 5 楼 qq_19558705 的回复:
[quote=引用 1 楼 rickylin86 的回复:]

public class Test{
	public static void main(String[] args){
		String num = "1646464313131313131";
		num = num.replaceAll("(?=(\\d{3})+$)",",");
		System.out.println(num);
	}
}
我想要的结果是:一个long类型数字添加千位号后还是long类型,我之前做的返回结果还是string,导致500的错。[/quote] 你要这样做是为了什么呢?在参与运算的时候加千分位,人是看不到的,人需要看的时候再加
ITDragon龙 2015-12-17
  • 打赏
  • 举报
回复
引用 8 楼 u011376884 的回复:
[quote=引用 7 楼 qq_19558705 的回复:] [quote=引用 6 楼 u011376884 的回复:] [quote=引用 4 楼 qq_19558705 的回复:] [quote=引用 2 楼 dracularking 的回复:] 不要再parseLong了
那用什么Long.valueOf()也不行,所以打印的结果有千位号,但是我想要long类型的,而不是string。[/quote] 传值过程中就不要格式化了,只在最终显示的时候在格式化成字符串[/quote] 不明白,你是要我分开写么?这是我的错误信息: java.lang.NumberFormatException: For input string: "152,646"[/quote] 不存在,分割的数字类型,只有字符串,所以你只能传值的时候用原始的数字类型, 只在页面/控制台显示的时候格式化成相应的字符串显示[/quote] 好吧!看来是做不成了。
  • 打赏
  • 举报
回复
引用 7 楼 qq_19558705 的回复:
[quote=引用 6 楼 u011376884 的回复:] [quote=引用 4 楼 qq_19558705 的回复:] [quote=引用 2 楼 dracularking 的回复:] 不要再parseLong了
那用什么Long.valueOf()也不行,所以打印的结果有千位号,但是我想要long类型的,而不是string。[/quote] 传值过程中就不要格式化了,只在最终显示的时候在格式化成字符串[/quote] 不明白,你是要我分开写么?这是我的错误信息: java.lang.NumberFormatException: For input string: "152,646"[/quote] 不存在,分割的数字类型,只有字符串,所以你只能传值的时候用原始的数字类型, 只在页面/控制台显示的时候格式化成相应的字符串显示
ITDragon龙 2015-12-17
  • 打赏
  • 举报
回复
引用 6 楼 u011376884 的回复:
[quote=引用 4 楼 qq_19558705 的回复:] [quote=引用 2 楼 dracularking 的回复:] 不要再parseLong了
那用什么Long.valueOf()也不行,所以打印的结果有千位号,但是我想要long类型的,而不是string。[/quote] 传值过程中就不要格式化了,只在最终显示的时候在格式化成字符串[/quote] 不明白,你是要我分开写么?这是我的错误信息: java.lang.NumberFormatException: For input string: "152,646"
  • 打赏
  • 举报
回复
引用 4 楼 qq_19558705 的回复:
[quote=引用 2 楼 dracularking 的回复:] 不要再parseLong了
那用什么Long.valueOf()也不行,所以打印的结果有千位号,但是我想要long类型的,而不是string。[/quote] 传值过程中就不要格式化了,只在最终显示的时候在格式化成字符串
ITDragon龙 2015-12-17
  • 打赏
  • 举报
回复
引用 1 楼 rickylin86 的回复:

public class Test{
	public static void main(String[] args){
		String num = "1646464313131313131";
		num = num.replaceAll("(?=(\\d{3})+$)",",");
		System.out.println(num);
	}
}
我想要的结果是:一个long类型数字添加千位号后还是long类型,我之前做的返回结果还是string,导致500的错。
ITDragon龙 2015-12-17
  • 打赏
  • 举报
回复
引用 2 楼 dracularking 的回复:
不要再parseLong了
那用什么Long.valueOf()也不行,所以打印的结果有千位号,但是我想要long类型的,而不是string。
u011074118 2015-12-17
  • 打赏
  • 举报
回复
dracularking 2015-12-17
  • 打赏
  • 举报
回复
不要再parseLong了
rickylin86 2015-12-17
  • 打赏
  • 举报
回复

public class Test{
	public static void main(String[] args){
		String num = "1646464313131313131";
		num = num.replaceAll("(?=(\\d{3})+$)",",");
		System.out.println(num);
	}
}

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧