Java中toPlainString()的用法

package com.test;

import java.math.BigDecimal;

import org.apache.commons.lang.StringUtils;

import jp.co.canonits.progner.core.common.utility.NumberUtility;

public class ToPlainString {
    public static void main(String[] args) {

        //BigDecimal fieldA = new BigDecimal("0.0000001");
        BigDecimal fieldA = new BigDecimal("123456789012345678");
        System.out.println(fieldA.toString()); // -> 1E-7
        System.out.println(fieldA.toPlainString()); // -> 0.0000001
        System.out.println();

        // 元金額(月単価)
        BigDecimal motoAmntYen = new BigDecimal("1234");
        // 日割り金額(10円未満は切捨て)
        BigDecimal amntYen = motoAmntYen.multiply(new BigDecimal("15")).divide(new BigDecimal("30"), -1, BigDecimal.ROUND_FLOOR);
        // 修正前金額
        BigDecimal befAmntYen = toBigDecimal("10,800");
        amntYen = befAmntYen.multiply(amntYen).compareTo(BigDecimal.ZERO) < 0 ? amntYen.multiply(new BigDecimal(-1)) : amntYen;

        System.out.println(amntYen);
        System.out.println(amntYen.toString());
        System.out.println(toDisplayFormatNumber(amntYen.toString()));
        System.out.println((new BigDecimal("123456789012345678").toPlainString()));
        
    }

    /**
     * メソッド名:数字値転換
     * 処理概要:数字値転換
     * 処理内容:数字値転換
     * 
     * @param num 数字
     * @return 転換された数字
     * @exception なし
     */
    private static BigDecimal toBigDecimal(String num) {

        BigDecimal ret = new BigDecimal(0);

        if (StringUtils.isNotBlank(num)) {
            ret = new BigDecimal(NumberUtility.toValueFormatAsString(num));
        }

        return ret;
    }
    
    private static String toDisplayFormatNumber(String val) {

        String ret = null;

        if (StringUtils.isNotBlank(val)) {
            ret = NumberUtility.toDisplayFormat(val);
        }

        return ret;
    }

}
 

你可能感兴趣的:(Java)