vb中三角函数怎么求精确值
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/04 22:27:40
vb中三角函数怎么求精确值
比如我要算sin(π/6),vb中自己定义的π有精确度问题,导致最后求出的值只能是约等于0.5.怎么能得到0.5的结果
比如我要算sin(π/6),vb中自己定义的π有精确度问题,导致最后求出的值只能是约等于0.5.怎么能得到0.5的结果
![vb中三角函数怎么求精确值](/uploads/image/z/2408816-56-6.jpg?t=vb%E4%B8%AD%E4%B8%89%E8%A7%92%E5%87%BD%E6%95%B0%E6%80%8E%E4%B9%88%E6%B1%82%E7%B2%BE%E7%A1%AE%E5%80%BC)
精度不够,我这个代码在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了.
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了.