私は以下の関数を使ってデータベースから整数を取得しますが、関数内で数値が正しく送信されていることを確認しました。私は文字列に変換し、その数に応じて特定の方法で返したいと思います。それは<数字で10000を正常に動作いくつかの奇妙な理由で文字列に文字を追加しても期待通りの結果が得られません
が、その時点からその上にちょうど
機能がある奇妙な結果を示しています
public static String numberTransformation(int number){
String str=String.valueOf(number);
System.out.println("#################### NUMBER BEFORE TRANSFORMATION" + str);
if(number<=999){
return str;
}
else if(number>999 && number<1099){
return "1k";
}
else if(number>1099 && number<=9999){
return str.charAt(0) + "." + str.charAt(1) + "k";
}
else if (number>9999 && number<=99999){
return str.charAt(0) + str.charAt(1) + "k";
}
else if (number>99999 && number<=999999){
return str.charAt(0) + str.charAt(1) + str.charAt(2) + "k";
}
return "";
}
一部のテストと結果:
Number is 999 -> result is 999 (expected)
Number is 2532 -> result is 2.5k (expected)
Number is 10000 -> result is 97k (not expected)
Number is 100000 -> result is 145k (not expected)
どうしたのですか?それは10000より大きい数字と何か関係がありますか?
この重複は、あなたがすでに質問に対する回答を知っている場合にのみ有効です。 OPは文字列を連結して文字列を連結していないと仮定していたので、文字の追加に関する質問を探すのに十分な知識はありませんでした。この質問を他のものにリンクすることは有益ですが、この質問を削除することはおそらくこの質問の近くの目標ですが、文字列の連結と文字の追加を混同しているユーザーは、 。 – Eran