vb中三角函数怎么求精确值比如我要算sin(π/6),vb中自己定义的π有精确度问题,导致最后求出的值只能是约等于0.5

1个回答

  • 精度不够,我这个代码在VBA下可以得到0.5

    Dim pi As Double

    pi = 3.14159265358979

    MsgBox Sin(pi / 6)

    实际上编程的时候,碰到有小数的场合,都应该考虑精度问题,一般不能用

    if a = b then

    这样的方法来判断是否相等.应该设置一个许可误差,判断一个值是否在许可误差内,或者不需要精确值时,用

    if a=b

    这样的方式来判断.

    这是硬件决定的,因为小数的长度可能是无限的,电脑不可能储存无限的数,所以总是会舍弃小数.如果要求高,就用double类型,否则用single类型,保证精度.楼主这个问题可以计算出0.5,只能说是幸运,最好还是要假设他就是0.5左右.或者考虑用四舍五入,比如保留两位小数,那绝对能得到0.5了.