[TOC] > Tue May 25 2021 12:03:14 GMT+0800 (GMT+08:00) JavaScript 在数学计算方面计算精度有限,**不可用于高精确度数学计算**。很多 Math 函数都有一个精度,而且这个精度在不同实现中也是不相同的。这意味着不同的浏览器会给出不同的结果,甚至,在不同的系统或架构下,相同的 JS 引擎也会给出不同的结果! 换言之,就算你打算开发一个计算器都不应该使用 JavaScript 作为计算核心……但是你可以拿它来设计计算器的界面。 Math 的所有属性与方法都是静态的。不能像这样使用:` new Math()` 我就不搬运了,大家自行前往学习 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math ## 方法 我们直接用一个宏过一遍算了: > 偷懒了,感兴趣的可自行查看具体方法的参数。 ```js function _m_show_mathMethods() { let pi = Math.PI let forEvals = [ "Math.abs(pi)", "Math.acos(pi)", "Math.acosh(pi)", "Math.asin(pi)", "Math.asinh(pi)", "Math.atan(pi)", "Math.atan2(pi)", "Math.atanh(pi)", "Math.cbrt(pi)", "Math.ceil(pi)", "Math.clz32(pi)", "Math.cos(pi)", "Math.cosh(pi)", "Math.exp(pi)", //"Math.expM1(pi)", "Math.floor(pi)", "Math.fround(pi)", "Math.hypot(pi)", "Math.imul(pi)", "Math.log(pi)", "Math.log10(pi)", "Math.log1p(pi)", "Math.log2(pi)", "Math.max(pi)", "Math.min(pi)", "Math.pow(pi,2)", "Math.random(pi)", "Math.round(pi)", "Math.sign(pi)", "Math.sin(pi)", "Math.sinh(pi)", "Math.sqrt(pi)", "Math.tan(pi)", "Math.tanh(pi)", "Math.trunc(pi)" ]; // header Range("A1").Value2 = "Math方法"; Range("B1").Value2 = "计算结果"; for (let i = 0; i < forEvals.length; i++) { let writeHere = Range("A2").Offset(i, 0) writeHere.Value2 = forEvals[i]; writeHere.Offset(0, 1).Value2 = eval(forEvals[i]) } } ```