1

文字列変数に負の値の制約を設定する必要があります。例:-

string zeroval = "0.0000"
String x = "";
if (x==null) || (x.equals(zeroval)) { // code which checks if string x has 0 or null value
              x = "--"                // replace it by --
}

同様に、文字列xに負の値(たとえば:)が含まれているかどうかをチェックする別のコードを追加し、次"-0.025"のように置き換えます-上記の文字列xにはnull/ゼロ/負の値を含めることはできません

助けてください

注:-負の値を追加するには、次のようなパターンマッチング手法を使用できないため、文字列をfloatに変換します。-x.equals( "-")

4

4 に答える 4

6

入力データには常に有効な数値が含まれていますか?もしそうなら、あなたはただ使うことができます:

 BigDecimal number = new BigDecimal(text);
 if (number.compareTo(BigDecimal.ZERO) <= 0) {
     text = "--";
 }

これにより、それが実際に数値であることが検証さ、チェックが実行されます。さらに:

  • これは、0の他の表現、たとえば「0.00」、「0」、「+0」に対応します。
  • これはBigDecimal、2進浮動小数点表現の奇妙さを回避するために使用されます(たとえば、非常に小さい正の値が0として表示されます)。問題になる可能性は低いですが、基本的に10進データがあるため、そのように解析することをお勧めします。
于 2012-07-24T06:08:16.010 に答える
0

ラッパークラスを使用して整数またはdoubleに変換します。

String number="12.3434"
if(Double.parseDouble(number)<0)
//do stuff here
于 2012-07-24T06:07:38.630 に答える
0

文字列が「-」で始まるかどうかを確認できます。

if (x==null) || (x.equals(zeroval) || x.startsWith("-")) {
  x = "--";
}

文字列を使用して数値データを表すことで、あなたが何か悪いことをしていると感じずにはいられません。

于 2012-07-24T06:08:15.480 に答える
0

Double.parseDouble(String)またはを使用できますFloat.parseFloat (String)doubleこれらのメソッドは、それぞれ aまたは aを取得するのに役立ちますfloat

この後、値が負かどうかを簡単に確認できます。

于 2012-07-24T06:08:31.247 に答える