2017-11-14 24 views
-1

小数点以下3桁以上を入力すると以下のコードに誤りがあります。しかし、私は小数点以下2から3までの長さを増やしたい。小数点以下の桁数

私はprecisionValue.length()>2からprecisionValue.length()>3まで増加しました。エラーは同じです

 if (str != null && str.length() > 0) { 
     boolean month2 = validator.validateDecimal(str.trim()); 
     if (!month2) { 
      errors.rejectValue(MONTH2, "10005"); 
     } 
     if(str.contains(".")){ 
      String decValue = str.substring(0, str.indexOf(".")); 
      String precisionValue = str.substring(str.indexOf(".")+1); 
      if(decValue.length()>9) { 
       errors.rejectValue(MONTH2, "10035"); 
      } 
      if(precisionValue.length()>2) { 
       errors.rejectValue(MONTH2, "10038"); 
      } 
     } 
     else if(str.length()>9) { 
      errors.rejectValue(MONTH2, "10035"); 
     } 
      } 
+0

ウィザードは、 – JJJ

答えて

0

私はそれがC#であると仮定し、構文を修正しました。あなたはプログラミング言語を達成するために逆にすることができます。小数点以下3桁以上の文字列形式の数値を選択すると、errors.rejectValue(month2、 "10038");コードの行と予想される方法で動作しています。私はあなたの問題を完全に理解することはできません。

  string str = "1.2345"; 
      if (str != null && str.Length > 0) 
      { 
       bool month2 = validator.validateDecimal(str.Trim()); 
       if (!month2) 
       { 
        errors.rejectValue(month2, "10005"); 
       } 
       if (str.Contains(".")) 
       { 
        String decValue = str.Substring(0, str.IndexOf(".")); 
        String precisionValue = str.Substring(str.IndexOf(".") + 1); 
        if (decValue.Length > 9) 
        { 
         errors.rejectValue(month2, "10035"); 
        } 
        if (precisionValue.Length > 3) 
        { 
         errors.rejectValue(month2, "10038"); 
        } 
       } 
       else if (str.Length > 9) 
       { 
        errors.rejectValue(month2, "10035"); 
       } 
      }