VB.net当中用数学函数math.sin出现的问题

[复制链接]
查看11 | 回复2 | 2010-9-7 22:38:12 | 显示全部楼层 |阅读模式
我写了如下一个很简单的程序:
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim a As Single

a = 311 * Math.Sin((Single.Parse(TextBox1.Text)) * Math.PI / 180)

MessageBox.Show(a.ToString)

End Sub
End Class
我也就是想在输入一个角度之后得出一个值来。(也就是发电机在某一个旋转角度下的瞬时值)在90度角的时候应该是最大的值,也就是311,没有问题,可是我在输入720之后得到一个很奇怪的数字:-1.52341E-13奇怪!!这是为什么?(应该是0才对呀!!后来我又试了一下360度,1080度,1440度,反正只要是360的整数就出现了与上面那个奇怪的数字很相似的结果!!)这是为什么呢?给解释一下,谢谢。

回复

使用道具 举报

千问 | 2010-9-7 22:38:12 | 显示全部楼层
-1.52341E-13科学计数法,10的-13次方表示此数已经接近于0了,应该是single类型的精度导致的,你把精度设置适当应该就可以了。
回复

使用道具 举报

千问 | 2010-9-7 22:38:12 | 显示全部楼层
TextBox1.Text)) * Math.PI / 180是近似值,也就是把360代入后,得到的是一个非常接近2PI的值,所以结果就不是0了.你可以把360等数据直接化成2pi,再计算.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行