-2

我目前正在为布拉格定律制作一个小型计算器

lamda=2*d*SIN theta

从dtheta计算波长。在这个输入值中,theta 的单位是度。我目前已经这样做了

 Dim l, d, t As Double
        d = 1.5
        t = 20         'input in degrees'
        l = 2 * d * Math.Sin(t)
        label1.text = l   

问题是内置的Math.Sin()将 sin 计算为弧度。是否有用于计算 Visual Studio 2012 度的 sin cos tan 的功能。如何将弧度转换为度数。

4

2 回答 2

1

你可以使用数学:)

rad=pi*deg/180
于 2013-07-11T03:37:03.357 回答
1

如果您的 thetat在 -360*N < t < +360*N (N < 1000),@Casimir et Hippolyte 解决方案很好。除非感兴趣,否则不要继续阅读。但是,如果您使用较大的度值,您就已经跌入了计算机编程的雷区之一。

问题是t * pi在计算机中不是 t * pi数学意义上的。pi计算机的几乎pi。Pi 是一个无限位数的数字,在计算机中不能完全表示。因此t * about_pi,随着 t 变大,四舍五入的位数越来越多。

您想要对乘法做的第一件事是调用 Math.Sin(t)。Math.Sin(t) 所做的第一件事是对 2*pi 进行数学模运算。一个好的sin() 函数将以非常精确的 2*pi 为模,然后处理余数。回想一个巨大 tt * about_pi结果,结果是一个显着舍入的值,并且 Math.Sin(t)最终在计算 sin() 时使用该舍入值。

但是您的优势在于,2*pi如果您在转换为弧度之前执行它,您可以更准确地执行模数,因为您的模数是 360精确

这一切的结果是

t = t Mod 360

然后

rad = (2*pi)*t/360
于 2013-07-12T04:10:18.117 回答