需要帮助打印双打和char值

时间:2015-01-28 19:45:19

标签: java println

包trigFunctions;

import java.text。*;

public class 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值' - ',而是打印数字值。格式化工作,因为我试图在小数点前有4个数字,在小数点后有4个数字。什么是无效的是在if / else语句中我分配我的变量(char)' - '如果分母小于.0000005在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

问题是doubletanx始终是一个数字。您可以为其分配char '-'的原因是,Java允许从char的Unicode值到更宽的基元类型(例如double)进行原始扩展转换。 。即使您使用charchar投射到(char),在分配给double后,该值仍会扩展为double

不要保留double值以便稍后打印,而是保留String值以便稍后打印。

计算完成后,立即将值格式化为String以分配给tanx,该String应声明为"-"。然后将tanx分配给String。 (其他结果变量现在也应该是{{1}}。)

答案 1 :(得分:0)

我以不同的方式做到了。我在if / else语句中设置System.out.print(),并在else语句中打印类似于System.out.print(&#34; - &#34;)的内容。这是我最初尝试做的事情,但是呃,它有效。

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

我设置了一个包含&#39; - &#39;的char变量。只是因为我想。我意识到这是一个不必要的步骤。谢谢你的回复。如果你不介意的话,我仍然想看一个你所谈论的代码示例。