プロが教える店舗&オフィスのセキュリティ対策術

すみません。助けてください。
javaについての質問です。
integerに変換できない数値をエラーとして処理したいのですが、if文で変換できるかどうか確認し、変換できなければ、try catch に処理が流れるようにすればいいのでしょうか。自分でも何を言っているのか分かりません。助けてください。

質問者からの補足コメント

  • public static boolean isNumber(value){
    boolean result = false;

    // 受け取った値がnullか空文字か確認
    if(value == null || money == (" ")){
    return felse;


    Integerに変換できない数値はエラーとする
    try {
    number = Integer.parseInt(value);
    } catch (NumberFormatException e) {
    system.out.println("不正な数値です");
    return false;
    }
    return true;

      補足日時:2022/05/18 21:10
  • 理解力が無くて申し訳ない限りです…

    「すみません。助けてください。 javaに」の補足画像2
      補足日時:2022/05/18 21:12
  • 続きです。

    「すみません。助けてください。 javaに」の補足画像3
      補足日時:2022/05/18 21:13

A 回答 (5件)

金額を扱うのならば BigDecimal を活用しましょう


銭単位だろうが兆単位だろうが、問題なく処理できます
https://docs.oracle.com/javase/jp/17/docs/api/ja …

try {
_ var 百億 = new BigDecimal("100E+8");
_ var 金額 = new BigDecimal(数字を受け取る());
_ var 金額は百億以下 = (金額.compareTo(百億) <= 0);
} catch (NumberFormatException e) {
_ エラー処理();
}
    • good
    • 0

「instanceof Integer」で判定すると良さそうに思います。

    • good
    • 0

int がだめなら long にすればいいじゃん.

    • good
    • 0

こんな感じですか?



var str = "abc";
Integer number = null;

try {
number = Integer.parseInt(value);
} catch (NumberFormatException e) {
System.out.println("変換エラー");
}
    • good
    • 0

integerで表現できない数値はあっても、「integerに変換できない数値」はありません。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!