System.out.println(new BigDecimal("11.1020").stripTrailingZeros());
解决方案 »
- Android中,如何实现类似微信中邮件添加联系人的功能
- 弄个按钮而已,报如下错误。在线等,急~
- 想跟大家探讨一下学习Linux内核对学习android的影响
- 手机设置中的动画设置为“无动画”后,如何让自己设置的切换动画还有效?
- android 手机音量
- 运行 Android 程序时 虚拟机显示不完整
- 两个控件叠在一起,如何让被挡住的控件显示出来?
- Andorid 上传视频抛出java.lang.outofmemoryError
- 高分跪求在游戏类 (SurfaceView) 里切入 admob广告用例(100分)
- 有使用Android Studio 的兄弟吗?请教一个问题
- Html Input标签date类型 无法弹出日期选择框问题
- html5的audio 在手机端的load方法无referer
NumberFormat nf = NumberFormat.getInstance();
double num=Double.valueOf(nf.format(1.20000));
System.out.println(num);
程序的输出即为: 100.000
如果我们希望去除末尾多余的0,那么我们应该这么写:
System.out.println( new BigDecimal("100.000").stripTrailingZeros().toString());
其中,stripTrailingZeros()函数就是用于去除末尾多余的0的,但是此时程序的输出为: 1E+2
是科学计数法,可能并不是我们想要的。
解决的方法很简单,如果想要避免输出科学计数法的字符串,我们要用toPlainString()函数代替toString()。如:
System.out.println( new BigDecimal("100.000").stripTrailingZeros().toPlainString());
此时程序的输出就为 100
可以格式化输出内容。
/**
* 格式化float类型的方法
* @param val 要格式化的值
* @param retain 保留的小数位
* @return
*/
public float formatFloat(float val, int retain) {
BigDecimal bigDecimal = new BigDecimal(val);
return bigDecimal.setScale(retain, BigDecimal.ROUND_HALF_UP).floatValue();
}