14

.0を含む浮動小数点数の小数部分を削除したいだけです。他のすべての番号は受け入れられます。例:

  I/P: 1.0, 2.2, 88.0, 3.56666, 4.1, 45.00 , 99.560
  O/P: 1 ,  2.2, 88,   3.567,   4.1, 45 ,    99.560

「数値を「.0」と比較して部分文字列を取得する」以外、それを行うために利用できる方法はありますか?

編集:私はフロート番号をアクティブにしたくありません(1.0のように、2.0は1 2にすぎませんか?)

私の質問は少し紛らわしいと思います...
ここに私の説明があります:私はユーザーに一連の浮動小数点数を表示したいだけです。数値の小数部分がゼロの場合は整数部分のみを表示し、そうでない場合は数値をそのまま表示します。私はそれが今はっきりしていることを願っています。

4

8 に答える 8

17

アンドロイドがあなたにレモンを与えるなら。投げないでください。

YourFormatedStringNumber = NumberFormat.getInstance().format(myNumber);

makes -> "12.50" to "12.50"  and "12.00" to "12"

詳細はこちらのドキュメントをご覧ください。

于 2015-07-18T19:45:22.657 に答える
13

次のような正規表現を使用できます\\.0+$。小数点の後に0しかない場合、この正規表現はtrueになります。

あなたができるもう一つのことはそのようなものです:

float x = 12.5;
float result = x - (int)x;
if (result != 0)
{
    //If the value of `result` is not equal to zero, then, you have a decimal portion which is not equal to 0.
}
于 2012-05-08T10:16:25.520 に答える
12

試す:

String.format("%.0f",value);
于 2015-07-16T09:21:39.107 に答える
3

まだコメントできませんので、注意してください。数値を機能させるには、数値を2倍にする必要があります。

String.format("%.0f", number)
于 2020-01-27T10:03:43.127 に答える
2

NumberFormatまたはDecimalFormatを試してください:

小数点以下の桁がない可能性のある小数点を表示したくない場合は、setDecimalSeparatorAlwaysShownを使用します。

于 2012-05-08T10:15:51.247 に答える
0

技術的には、表示部分はテキストなので、正規表現で行うことができます。番号が一致する場合は、グループを使用して正しい部分を抽出します。(後で解決策で投稿を更新します。)

または、次のようにすることもできます。

if ((int)Math.round(number) == number) {
   System.out.println((int) number)  
} else {
   System.out.println(number)  
}

あるいは:

System.out.println((int) Math.round(number) == number ? 
    String.valueOf((int) number) : String.valueOf(number));

注意してください、これは機能しないため、String.valueOf()が必要です。System.out.println(double)は常に実行されます。つまり、以下は機能しません。

System.out.println((int)Math.round(number) == number ? (int) number : number);
于 2012-05-08T10:16:55.597 に答える
0

浮動小数点数の前にintをキャストしてみてください

于 2017-06-23T03:20:32.273 に答える
0

この拡張メソッドを作成しました。金額にdecimal(40.01)が含まれている場合は、10進数が表示されます。それ以外の場合は、amount(40.00)のみが表示されます。

  1. 入力2000.43、結果= 2,000.43

  2. 入力2000.00、結果= 2,000

     fun Double.FormattedAmount(): String {
    
        val otherSymbols = DecimalFormatSymbols(Locale.US)
        val decimalFormat = DecimalFormat("#,###,###.##", otherSymbols)
        return decimalFormat.format(this).toString()
    
     }
    
于 2021-02-23T18:16:58.007 に答える