2017-03-04 48 views
2

我知道有一種強制浮點數有3個小數點的方法,但是如何使字符串表示「4.00000009」在保留3個小數點後保留3個小數點我把它變成一個浮動? Float.parseFloat()將其舍入到4.0。不使用額外的庫將是理想的。如何在java中將字符串解析爲帶有三個小數點的浮點數

+0

有什麼問題有什麼呢? 4.0 = 4.000 –

+0

's = s.substring(0,s.indexOf(「。」)+ 4)' – QBrute

+0

這只是一個要求,我必須有3個小數點,不管值是否相等。 –

回答

1

如果您保證字符串的格式正確,您可以根據小數點索引獲取子字符串。

另外,你可以解析它,乘以一千,然後將它除以一千。

但是,從長遠來看,這對你來說會很糟糕。如果需要精確的值,浮點數不會很好。改爲考慮BigDecimal。

1

此實用工具方法需要一個String,並把它變成一個float與3位小數地方:

public static float getFloat(String s) { 
    BigDecimal decimal = new BigDecimal(s); 
    decimal = decimal.setScale(3, RoundingMode.HALF_UP); 
    return decimal.floatValue(); 
} 
+0

BigDecimal就是答案 – LppEdd

相關問題