包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在此先感谢您的帮助。
答案 0 :(得分:1)
问题是double
值tanx
始终是一个数字。您可以为其分配char
'-'
的原因是,Java允许从char
的Unicode值到更宽的基元类型(例如double
)进行原始扩展转换。 。即使您使用char
将char
投射到(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变量。只是因为我想。我意识到这是一个不必要的步骤。谢谢你的回复。如果你不介意的话,我仍然想看一个你所谈论的代码示例。