>

이 double의 모든 문자를 2로 나누고 나머지 (3.9191070819954144E14) 를 가져와야합니다. . 예 3/2=1(remainder) 9/2=1(remainder)  완료하고 새로운 가치 11을 형성 할 때까지 .... 이것이 내가 얻은 결과, norrrmal 0.1679....Value  통과하지 못함

 //the value come from rulesfpadouble
 double rulesfpadouble =  3.9191070819954144E14;
 DecimalFormat numberFormatted = new DecimalFormat("#");
 System.out.println("rule : \t" + numberFormatted.format(rulesfpadouble));
 //Start encode the data//
         String[] too = rulefpas.split("/^\\d*\\.?\\d*$/");//Regex split
        double a[] = new double[too.length]; //Makes new int array
        for(int i=0;i<a.length;i++){
        a[i] = Double.parseDouble(too[i]); //Converts String to int
        System.out.println("a value"+ a[i]);
        }
       double[] normal = new double[a.length];
          for(int k = 0; k < a.length; k++)
          {
           normal[k] = a[k] % 2;
           str = Arrays.toString(normal);
           System.out.println("norrrmal"+str);
         }

  • 답변 # 1

    예제 문자열의 경우 \D 를 사용하여 숫자가 아닌 모든 것을 먼저 제거 할 수 있습니다  빈 문자열로 바꾸고 빈 문자열로 분할하여 배열을 가져옵니다.

    그런 다음 배열을 반복하고 나머지를 새로운 배열에 저장하십시오 :

    double rulesfpadouble = 3.9191070819954144E14;
    String[] too = String.valueOf(rulesfpadouble).replaceAll("\\D", "").split(""); 
    int[] remainders = new int[too.length];
    for (int i = 0; i < too.length; i++){
        remainders[i] = (Integer.parseInt(too[i]) % 2);        
    }
    System.out.println(Arrays.toString(remainders));
    
    

    데모

  • 이전 java - Akka 원격 메시지 비용?
  • 다음 python - 소수점을 제거하는 방법