正弦规则未获得预期输出

本文关键字:输出 规则 | 更新日期: 2023-09-27 18:33:16

这是我正在编写的一段代码的一小部分。这使用一个方程来计算 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);
        }
    }
}

正弦规则未获得预期输出

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

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