2017-03-04 17 views
2

浮動小数点数に3桁の小数点以下の桁数を指定する方法がありますが、どのようにして文字列表現 "4.00000009"私はそれをフロートに変えますか? Float.parseFloat()は4.0に丸めます。余分なライブラリを使用しないのが理想的です。Javaで小数点3桁の浮動小数点数に文字列を解析する方法

+0

問題があり、正確には何ですか? 4.0 = 4.000 –

+0

's = s.substring(0、s.indexOf("。 ")+ 4)' – QBrute

+0

値の等価性にかかわらず、小数点以下3桁を必要とするという単純な要件です。 –

答えて

1

Stringが適切にフォーマットされていることが保証されている場合は、小数点のインデックスに基づいて部分文字列を取ることができます。

また、それを解析し、千分の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

関連する問題