簡體   English   中英

如何擺脫小數點前小於零的小數點前的零?

[英]How to get rid of leading zero before the decimal point in a double less than one?

我正在做一個相當大的項目(對我來說,這是高中的AP JAVA課程)。 無論如何,對於項目的一部分,我需要能夠將小數點四舍五入並在小數點前的開頭不輸出零。

例如:.4999輪---> 0.5我需要:.4999輪---> .5

提前致謝

如Ingo所述,您需要獲取數字的String表示形式,以便根據需要修改輸出。 一種解決方案是使用java.text.NumberFormat setMinimumIntegerDigits(0)似乎很合適。 我相信還有更多選擇。

嘗試這個:

public static String format(double value, int decimalPlaces) {
   if (value >= 1 || value < 0) {
      throw new IllegalArgumentException("Value must be between 0 and 1");
   }
   final String tmp = String.format("%." + decimalPlaces + "f", value);
   return tmp.substring(tmp.indexOf('.'));
}

例子:

System.out.println(format(0.4999d, 1)); // .5
System.out.println(format(0.0299d, 2)); // .03
System.out.println(format(0.34943d, 3)); // .349

工作小提琴

可以使用DecimalFormat類。

DecimalFormat df = new DecimalFormat("####0.0");
System.out.println("Value: " + df.format(value));

對您來說可能看起來很奇怪,但是您可以使用regex去除前導零,如下所示:

(假設您已經知道如何將小數點后一位舍入)

        double value = 0.5;

        String val = Double.toString( value ).replaceAll( "^0(\\..*)$", "$1" );

        System.out.println( val );

安慰:

       .5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM