为何编程语言中三角函数返回看似错误的结果?如何修复?
为什么你调用sin(90)得不到预期的1?
这是因为绝大多数编程语言的标准三角函数(比如sin、cos、tan)默认要求输入弧度,而非我们日常用的角度。你传入的90会被程序当成90弧度,转换成角度的话约等于5156.6度,对应的正弦值自然不是1。
修复方法
- 把角度转成弧度后再传入函数
转换公式是:弧度 = 角度 × π / 180
举几个常见语言的示例:- Python:
import math print(math.sin(math.radians(90))) # 输出1.0 # 或者手动计算弧度 print(math.sin(90 * math.pi / 180)) - JavaScript:
console.log(Math.sin(Math.PI / 2)); // 输出1(90度对应π/2弧度) // 或者手动转换 console.log(Math.sin(90 * Math.PI / 180)); - Java:
import java.lang.Math; public class Main { public static void main(String[] args) { System.out.println(Math.sin(Math.toRadians(90))); // 输出1.0 } }
- Python:
- 使用语言/库提供的角度版三角函数
部分编程语言或第三方库会提供直接接收角度的三角函数(比如命名为sinDeg、cosDeg这类),可以直接调用,但这类不是通用标准,需要查看对应语言的文档确认。
内容的提问来源于stack exchange,提问作者Justine Krejcha
相关产品推荐
相关产品推荐

