[英]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.