簡體   English   中英

如何在不使用自定義格式化程序的情況下打印時略微舍入浮點並切掉尾隨零?

[英]How to round floats slightly and cut off trailing zeroes when printing them without using a custom formatter?

問題是我需要將“ 0.019999979000”之類的數字打印為“ 0.02”。

使用String.format()的問題在於,數字要么打印為“ 0.019999979”(%s),要么打印為“ 0.020000000”(%f)。

有沒有一種方法可以在不使用String的情況下組合這些效果?

UPD:數字並不總是在點后包含兩位數字-這只是一個示例,顯示值非常接近四舍五入

您似乎正在尋找一種基於有效數字的數字格式。 假設,對於n = 2,您想顯示四舍五入到前三位有效數字的數字,即

1234     -> 1200
0.001234 -> 0.0012
1.999    -> 2.0
0.019999979000 -> 0.02

不幸的是,在那種情況下,官方Java庫將對您沒有幫助(IMO的明顯遺漏)。 至少在Android下,您可以使用

new DecimalFormat("@@@")

3位有效數字; 否則,您需要尋找一些可用的實現。 我唯一知道的是ICU4J(Unicode的國際組件) ,但我尚未對其進行評估。

暫無
暫無

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

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