2015-01-28 4 views
0

패키지 trigFunctions;두배 및 문자 값 인쇄에 대한 도움이 필요합니다

import java.text. *;

공용 클래스 FunctionsApplied {

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    double sinx = 0.0; 
    double cosx = 0.0; 
    double tanx = 0.0; 
    double cotx = 0.0; 
    double secx = 0.0; 
    double cscx = 0.0; 

    final double piradiansconversion = 0.0174532925; //setting up variables 

    System.out.println("sin x  cos x  tan x  cot x  sec x  csc x");//gives labels to each answer 

    DecimalFormat df = new DecimalFormat("0000.0000"); 

    for(double counter = 0.00000; counter<=360; counter +=.1) 
    { 
     sinx= piradiansconversion*counter;//converts to radians 
     sinx= Math.sin(sinx);//calculates sin 


     cosx= piradiansconversion*counter;//converts to radian 
     cosx= Math.cos(cosx);//calculates cos 

     if(cosx > 0.0000005) 
      tanx= sinx/cosx;//finds tan x 
     else 
      tanx= (char)'-'; 

     if(sinx > 0.0000005) 
      cotx= cosx/sinx;//finds cot x 
     else 
      cotx= (char)'-'; 

     if(cosx > 0.0000005) 
      secx= 1/cosx;//finds sec x 
     else 
      secx= (char)'-'; 

     if(sinx > 0.0000005) 
      cscx= 1/sinx;//finds csc x 
     else 
      cscx= (char)'-'; 



     System.out.println(df.format(sinx)+" "+df.format(cosx)+" "+df.format(tanx)+" "+df.format(cotx)+" "+df.format(secx)+" "+df.format(cscx));//prints answers in columns and formats code to 4 decimal places 
    } 


} 

}

// 내 문제는 char 값을 인쇄되지 않습니다 출력에, 그래서 확인 - 대신이 숫자 값을 인쇄 ''. 소수점 앞에 네 개의 숫자가 있고 소수점 뒤에 네 개의 숫자가있는 것처럼 서식을 작동합니다. 작동하지 않는 것은 if/else 문에서 분모가 .0000005보다 작 으면 내 변수 (char) '-'를 할당하는 것입니다. 도움을 위해 미리 감사드립니다.

답변

1

doubletanx은 항상 숫자입니다. char'-'을 할당 할 수있는 이유는 Java가 char의 유니 코드 값에서 double과 같은 더 넓은 기본 유형으로 원시 확장 변환을 허용하기 때문입니다. char을 으로 (char)으로 전송하는 경우에도 double에 할당되면 값은 여전히 ​​double으로 확대됩니다.

double 값을 나중에 인쇄하도록 유지하는 대신 나중에 String 값을 유지하여 인쇄하십시오.

일단 계산되면 즉시 String으로 지정해야하는 tanx에 할당 할 String의 값을 지정하십시오. 그런 다음 "-"tanx에 할당하십시오. (다른 결과 변수는 이제 String이어야합니다.)

+0

나는 당신이 말하는 것을 더 잘 이해할 수 있도록 몇 가지 예제 코드를 줄 수 있습니다. –

0

다른 방식으로 변경했습니다. if/else 문에서 System.out.print()를 설정하고 else 문에서 System.out.print ("-")와 비슷한 것을 단순히 인쇄했습니다. 그것은 원래 내가하려고했던 것들에 대한 해결이지만, 작동합니다.

if(cosx > 0.0000005)//checks if the denominator is less than .0000005 { tanx= sinx/cosx;//finds tan x System.out.print((df.format(tanx))+" "); } else System.out.print(" "+lessthan+" ");//prints - if the denominator is less that 0.0000005

는 내가 포함 된 문자 변수를 설정 '-'내가 원한해서. 나는 그것이 불필요한 단계임을 깨닫는다. 귀하의 회신에 감사드립니다. 나는 아직도 당신이 마음을 안다면 당신이 말하는 것에 대한 예제 코드를보고 싶다.