私はeclipse + Android SDKを使用しています。
float値を2桁に丸める必要があります。私は通常、数学ライブラリを使用して次の「トリック」を使用します。
float accelerometerX = accelerometerX * 100;
accelerometerX = round(accelerometerX);
Log.d("Test","" + accelerometerX/100);
しかし、それが最善の方法ではないと感じています。
これらのタイプの操作を行うライブラリはありますか?
私は2年前にJavaで統計を扱っていましたが、数値を小数点以下の桁数に丸めることができる関数のコードをまだ入手しています。ここで2つ必要ですが、結果を比較するために3で試してみたいと思うかもしれません。この関数はこの自由を与えてくれます。
/**
* Round to certain number of decimals
*
* @param d
* @param decimalPlace
* @return
*/
public static float round(float d, int decimalPlace) {
BigDecimal bd = new BigDecimal(Float.toString(d));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd.floatValue();
}
切り上げるか切り捨てるかを決める必要があります。私のサンプルコードでは、切り上げています。
それが役に立てば幸い。
編集する
小数がゼロのときに小数点以下の桁数を保持したい場合は(ユーザーに表示するためだけだと思います)、次のように、関数の型をfloatからBigDecimalに変更する必要があります。
public static BigDecimal round(float d, int decimalPlace) {
BigDecimal bd = new BigDecimal(Float.toString(d));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd;
}
次に、この方法で関数を呼び出します。
float x = 2.3f;
BigDecimal result;
result=round(x,2);
System.out.println(result);
これは印刷されます:
2.30
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加