在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 如何用BigDecimal表示出-0.00

如何用BigDecimal表示出-0.00

想用bigdecimal進(jìn)行一些股票指數(shù)的計(jì)算,想要表示出某一個(gè)股票的指數(shù)是-0.00,但是用bigDecimal直接對0用negate取反是無效的,乘-1也不對,print出來都是0.00而不是-0.00,請問應(yīng)該如何對BigDecimal的數(shù)值操作能print出來-0.00呢?
目前知道如果用double做數(shù)據(jù)類型的時(shí)候,是可以用取反來得到-0.00的,這是不是意味著BigDecimal這個(gè)類型本身不支持-0.00的表示呢?感激不盡

回答
編輯回答
涼心人

自己寫一個(gè)函數(shù)行不?如果你你是用Java 8:

Function<BigDecimal, String> format = x -> BigDecimal.ZERO.equals(x) ?"-0.00" : String.format("%.2f", x);
System.out.println(format.apply(new BigDecimal(0)));
System.out.println(format.apply(new BigDecimal(1)));
System.out.println(format.apply(new BigDecimal(-1)));
2017年10月7日 16:52
編輯回答
避風(fēng)港
import java.text.DecimalFormat;

public class NumberFormat {

    public static void main(String[] args) {
        double d = 0.0;
        while (d < 10) {
            System.out.println(new DecimalFormat("-0.00").format(d)); // 方法1
            System.out.println(String.format("-%.2f", d));            // 方法2
            System.out.println("-------------------");
            d += 2.63;
        }
    }
}
2017年6月10日 13:15