正弦规则没有得到预期的输出

时间:2014-12-06 09:54:30

标签: c# sine

这是我写的一段代码的一小部分。这使用方程来计算y的值。度数的等式是y = 90sin(((2x)/ 3)-30)和等式中的等式(这是我在代码中使用的那个)y = 90sin(((x-45)* PI)/ 270)

如果我有x为45或315,则输出应该为0,如果x为180则y应为90.这在普通计算器上使用时工作正常但是当试图将其写入代码时它不会没错了。

 1. X--------Expected Y---Code Output 
 2. 315--------0----------1.10214571844014E-14
 3. 180-------90----------90 
 4. 45----- ---0-----------0

这是该计划:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Basic_s
{
    class Program
    {
        static void Main(string[] args)
        {
            double x = 315;
            double sinCon = ((x-45)*Math.PI)/270;
            double sinRad = Math.Sin(sinCon);
            double y= sinRad* 90;
            Console.WriteLine(sinCon.ToString());
            Console.WriteLine(sinRad.ToString());
            Console.WriteLine(y.ToString());
            System.Threading.Thread.Sleep(50000);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

与计算机相比,普通计算器的精确度不高。如果你看到十进制形式的结果没有科学记数法,结果可以忽略不计,小到接近0.计算器显示零。您可以使用Math.Round来解决此问题。

double y= Math.Round(sinRad* 90,5);