12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package com.util;
- import java.math.BigDecimal;
- /**
- * @author Administrator
- */
- public class NumberUtils {
- private static final String THOUSAND_UNIT = "k";
- private static final String MILLION_UNIT = "w";
- private static final String BILLION_UNIT = "e";
- private static final BigDecimal ONE_HUNDRED_THOUSAND = new BigDecimal(100000);
- private static final BigDecimal ONE_HUNDRED_MILLION = new BigDecimal(100000000);
- private static final BigDecimal TEN_THOUSAND = new BigDecimal(10000);
- private static final BigDecimal THOUSAND = new BigDecimal(1000);
- /**
- * 将数字转换成以万为单位或者以亿为单位,因为在前端数字太大显示有问题
- * @param str
- * @return
- */
- public static String amountConversion(int str){
- BigDecimal amount = new BigDecimal(str);
- if (amount.abs().compareTo(THOUSAND) < 0) {
- //如果小于1千
- return amount.stripTrailingZeros().toPlainString();
- }
- if (amount.abs().compareTo(TEN_THOUSAND) < 0) {
- //如果小于1万
- return amount.divide(THOUSAND, 0, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + THOUSAND_UNIT;
- }
- if (amount.abs().compareTo(ONE_HUNDRED_MILLION) < 0) {
- //小于1亿
- return amount.divide(TEN_THOUSAND, 0, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + MILLION_UNIT;
- }
- return amount.divide(ONE_HUNDRED_MILLION, 0, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + BILLION_UNIT;
- }
- // public static void main(String[] args) {
- // System.out.println(amountConversion(153));
- // System.out.println(amountConversion(7791));
- // System.out.println(amountConversion(54314));
- // System.out.println(amountConversion(291764245));
- // }
- /**
- * 将数字转换成以亿为单位
- * @param amount
- * @return
- */
- public static Double amountConversionBillion(BigDecimal amount){
- if (amount == null) {
- return null;
- }
- return amount.divide(ONE_HUNDRED_MILLION, 2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().doubleValue();
- }
- }
|