论坛首页 Java企业应用论坛

去掉数字前面多余的0与小数点后多余的0

浏览 20475 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-17  
yuyujulin 写道
用format, 不是用parse,别乱下结论


NumberFormat的format不是用来把数字转成字符串的吗?数字都超精度了,还怎么搞?
0 请登录后投票
   发表时间:2011-11-17  
kidneyball 写道
yuyujulin 写道
用format, 不是用parse,别乱下结论


NumberFormat的format不是用来把数字转成字符串的吗?数字都超精度了,还怎么搞?

数字超精度是Double 或者 Decimal的事情,不是NumberFormat的事情,见我上一个回帖,NumberFormat是用来格式化输出的,不是用来构造Double或者BigDecimal的,NumberFormat的位数可以任意多少为,而且,想你图片里面的那种情况纯粹是钻牛角尖,遇到的几率几乎为0
0 请登录后投票
   发表时间:2011-11-17  
yuyujulin 写道
public static void main(String[] args) {
BigDecimal number = null;
number = new BigDecimal( "121212.123001201200123123123");
System.out.println(trimZeroOfNumber(number));
number = new BigDecimal( "000123123");
System.out.println(trimZeroOfNumber(number));
number = new BigDecimal("12121000");
System.out.println(trimZeroOfNumber(number));
number = new BigDecimal("0.0");
System.out.println(trimZeroOfNumber(number));
number = new BigDecimal("0");
System.out.println(trimZeroOfNumber(number));
}

public static String trimZeroOfNumber(Object value) {
NumberFormat fmt = NumberFormat.getInstance();
fmt.setMaximumFractionDigits(100);
fmt.setGroupingUsed(false);
return fmt.format(value);
}


嗯,测试成功,忘了BigDecimal还有个String的构造器。。。
0 请登录后投票
   发表时间:2011-11-17   最后修改:2011-11-17
yuyujulin 写道
kidneyball 写道
yuyujulin 写道
用format, 不是用parse,别乱下结论


NumberFormat的format不是用来把数字转成字符串的吗?数字都超精度了,还怎么搞?

数字超精度是Double 或者 Decimal的事情,不是NumberFormat的事情,见我上一个回帖,NumberFormat是用来格式化输出的,不是用来构造Double或者BigDecimal的,NumberFormat的位数可以任意多少为,而且,想你图片里面的那种情况纯粹是钻牛角尖,遇到的几率几乎为0


边界条件不就是转牛角尖转出来的吗?就当写写正则练练手了 

我承认错误,忘了BigDecimal还有个String的构造器。。。我知道NumberFormat是用来格式化输出的,但如果一开始不把字符串转换成BigDecimal还是没辙。 
0 请登录后投票
   发表时间:2011-11-18  
无聊的东西
0 请登录后投票
   发表时间:2011-11-18  
+1
干点什么不好
Simon.Wang 写道
闲得蛋疼!!!

0 请登录后投票
   发表时间:2011-11-18  
两个循环不就可以了吗
0 请登录后投票
   发表时间:2011-11-18  
这帖还在首页呀,真是被打败了。
把无聊进行到底。。。



  • 大小: 34.4 KB
0 请登录后投票
   发表时间:2011-11-19  
看看String的trim方法,想办法把' '替换为'0'就可以了。
0 请登录后投票
   发表时间:2011-11-19  
quxiaoyong 写道
看看String的trim方法,想办法把' '替换为'0'就可以了。


问题是,如果字符串里没有小数点,后面的0就不能去掉。如果全部是0,最后结果需要是0,而不是空串。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics