浮動小数点数を整数値で求めなければならないアプリケーションを開発しています。浮動小数点数を整数で取得
たとえば、私の番号が153.12324
の場合、出力は12324
になります。この方法で試しましたが、しばらく時間がかかります。
これにはどのような問題がありますか?これを行うにはより良い方法がありますか?
D
double d =any_double_value;
String[] splitter = String.valueOf(d).split("\\.");
splitter[0].length(); // Before Decimal Count
int count = splitter[1].length();
int integerpart = (int) calcResult;
double floatpart = calcResult - integerpart;
while (count!=0)
{
floatpart=floatpart*10;
count--;
}
int floatpartinInt=(int)floatpart;
でdouble値は、これが唯一のいくつかのケースでは、間違った作品(答えが124であれば、それは123を与えるように、それは、より少ない1つの番号を与える)と答えが長いダブルノーである場合にあり以下のような3.333333333(10/3)
をあなたは 'の部分*端数を取得*' を意味するのですか? – EJP
すばらしい間違い:1.00023と1.000229は23と229を与えます。浮動小数点は大雑把な近似であり、文字列としての正確な桁数はありません。 –