Double
沒有任何維護無用數字的概念。
的問題是不是你正在使用的Double
(或double
)值 - 這是你怎麼那麼將其轉換回爲一個字符串。您應該使用指定適當的小數位數的DecimalFormat
。
另外請注意,您目前使用Double.parseDouble
它返回一個double
,但你將其分配給一個變量Double
,這將框中的值 - 可能不必要。
示例代碼:
import java.text.DecimalFormat;
public class Test {
public static void main(String[] args) {
String text = "500.00";
double number = Double.parseDouble(text);
DecimalFormat format = new DecimalFormat("0.00");
String formatted = format.format(number);
System.out.println(formatted);
}
}
注意上面的代碼將會給你,即使有更多的可位數兩位十進制數。
此外,如果確切的十進制數字對您很重要,您可能需要考慮使用BigDecimal
而不是double
。如果您的值實際上代表貨幣,這一點尤其重要。您應該瞭解浮點型二進制點類型(如double
)和浮點型十進制點類型(如BigDecimal
)之間的差異,並在它們之間進行適當選擇。
您將**的格式**與其實際值混淆。 –
500,500.0和500.00都是相同的數字。問題不在於'Double.ParseDouble'。在向用戶顯示值時如何正確格式化數字,而不是存儲它,您應該擔心。 –
看到這個lik:http://stackoverflow.com/questions/17236335/problems-with-decimalformat/17236468#17236468 – Masudul