java数字小方法归档

做税务的公司离不开跟数字打交道,特别是后台代码各种转换,什么千分位分隔符之类的,不一一说了 就把我用到的小方法总结一下 以后用直接从这里拿,之后陆续总结,现在有科学计数法转成小数,给一个数字加千分位分隔符,将小数换成百分数展示,


/**
	 * 把科学记数法转成小数
	 * 
	 * @param natation
	 *            需要转换的数字
	 * @param weishu
	 *            保留小数点的位数
	 * @return
	 */
	private static BigDecimal natationToCount(Object natation, int weishu) {
		BigDecimal ret;
		if (natation != null && "" != natation) {
			if (natation instanceof BigDecimal) {
				ret = (BigDecimal) natation;
			} else {
				ret = new BigDecimal(String.valueOf(natation));
			}
		} else {
			return BigDecimal.ZERO;
		}
		if (weishu == 4) {
			return ret.setScale(4, BigDecimal.ROUND_HALF_UP);
		} else {
			return ret.setScale(2, BigDecimal.ROUND_HALF_UP);
		}
	}

/**
	 * 千分位分隔符
	 * 
	 * @param pattern
	 * @param bd
	 * @return
	 */
	public static String parseNumber(BigDecimal bd) {
		DecimalFormat df = new DecimalFormat(",###,###.00");
		String string = df.format(bd);
		String dian = string.substring(0, 1);
		if (dian.contains(".")) {
			string = "0" + string;
		}
		if (string.contains("-.")) {
			string = string.substring(2, string.length());
			string = "-0." + string;
		}
		return string;
	}
/**
	 * 将小数转换为百分比输出(保留四位小数)
	 * 
	 * @param bd
	 * @return
	 */
	public static String parsesl(String str) {
		BigDecimal setScale = MathUtils.isNull(str).setScale(4, BigDecimal.ROUND_HALF_DOWN);
		NumberFormat nf = NumberFormat.getPercentInstance();
		//设置保留的小数位数(4)
		nf.setMaximumFractionDigits(4);
		return nf.format(setScale.doubleValue());
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值