• 로그인 함 해보끄나?

  • Sarangnamu.net June 17, 2003
    Home Login Profile Study Open Project Q&A Google Code
    C++ 프로그래머 Java 맛보기 #23
    Last Modify : 13 January, 2011(01:12)

    public class ValueOfDemo {
        public static void main(String[] args) {

         //this program requires two arguments on the command line  
            if (args.length == 2) {
       //convert strings to numbers
                float a = (Float.valueOf(args[0]) ).floatValue();  
                float b = (Float.valueOf(args[1]) ).floatValue();

                //do some arithmetic
                System.out.println("a + b = " + (a + b) );
                System.out.println("a - b = " + (a - b) );
                System.out.println("a * b = " + (a * b) );
                System.out.println("a / b = " + (a / b) );
                System.out.println("a % b = " + (a % b) );
            } else {
               System.out.println("This program requires two command-line arguments.");
            }
        }
    }

     

    위의 소스 코드는 String 으로 되어 있는 코드를 float 으로 캐스팅 하는 방법을 설명하고 있다. 먼저 valueOf 는 다음 처럼 구성이 되어 있다.

     

    public static Float valueOf(String s) throws NumberFormatException
    지정된 문자열이 나타내는 부동 소수(float) 값을 리턴합니다.

    매개변수:
            s - 분석될 문자열.
    결과:
            String 인수가 나타내는 값으로 초기화된 새로 구성된 Float.
    오류: NumberFormatException
            문자열에 분석할 수 있는 숫자가 들어있지 않은 경우.

     

    인자를 String 으로 받으므로 전달된 인자를 입력하면 Float 형으로 캐스팅이 되고 이를 다시 floatValue 메소드 호출을 하여 float 을 리턴하게 되는 것이다.

     

    public float floatValue()
            이 Float 객체의 부동 소수(float) 값을 리턴합니다.

     

    결과:
            이 객체가 나타내는 float 값.

     

    대체:
            Number 클래스에 있는 floatValue

     

     

    결과값은 다음처럼 출력된다.

    a + b = 91.7
    a - b = -82.7
    a * b = 392.4
    a / b = 0.0516055
    a % b = 4.5

    그럼 반대의 경우에는 어떻게 해야할 까?

     

    public class ToStringDemo {
        
        public static void main(String[] args) {
            double d = 858.48;
            String s = Double.toString(d);
            int dot = s.indexOf('.'); // . 찾기
           

            // . 위치는 3번째이다.
            System.out.println(dot + " digits before decimal point.");

     

            // 전체길이(6) - 3 - 1 은 2이다.
            System.out.println( (s.length() - dot - 1) +  " digits after decimal point."); 

        }
    }


    Comment


    입력하3 1508772466



    Locations of visitors to this page