- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
toPrecision
的返回值是“一个字符串......以定点或指数表示法四舍五入到精确的有效数字。”
8.235 => "8.23"不是四舍五入。为什么不同?
var toP = function (n) {
console.log(n, n.toPrecision(3) );
}
toP(1.235); // 1.235 "1.24"
toP(2.235);
toP(3.235);
toP(4.235);
toP(5.235);
toP(6.235);
toP(7.235);
toP(8.235); // 8.235 "8.23" why?
.as-console-wrapper{min-height:100%}
最佳答案
一如既往,应归咎于浮点(不)准确。
1.235 在二进制中是 1.0011110000101000111101011100001010001111010111000011...
chop 并转换回十进制,你得到 1.235000000000000098,它确实四舍五入。
但是 8.235 是 1000.0011110000101000111101011100001010001111010111...
chop 并转换回十进制,您将得到 8.234999999999999432,向下舍入。
关于javascript - toPrecision 的行为是否像 round 和 toString 一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42837758/
我错过了什么? 错误 TypeError: $(...).val(...).toPrecision is not a function 代码 $('.value_psi').val( conv
所以我刚发现这个: let number = -1234; console.log(number.toPrecision(3)); // -1.23e+3 console.log(-1234..toP
基于http://www.mredkj.com/javascript/nfbasic2.html ,以下代码将产生 5.6e+2。 num = 555.55; result = num.toPreci
查看这段代码: function testprecision(){ var isNotNumber = parseFloat('1.3').toPrecision(6); alert(
编码好像没有效果?当获胜者超过 10 位数时,它不会改变 if(winner.length > 10){ winner = winner.toPrecision(10); $('#podi
我想在显示之前使用 toPrecision() 减小数字的大小。但是,有时我无法将函数的输出乘以另一个数字而不会产生小的舍入误差。请参阅下面的代码示例: var x = 0.0197992182093
我想在网站上显示一些现在以科学计数法表示的数字。我正在使用 toPrecision 显示数字的正常表示法。 不幸的是,toPrecision 只适用于 1e-6 到 1e20 的范围,而我确实有 1e
我的意思是, 我应该使用这个干净的代码... var rounded=num.toFixed(n); ...而不是这个丑陋的代码... var pow10=Math.pow(10,n), ro
我正在使用 JavaScript 创建一个在线计算器。 我用这个来计算: eval(expression).toPrecision(10); 这几乎在所有情况下都会产生正确的输出。例如 eval('4
这个真的让我很困惑。 var a = 0.0003; var b = a.toPrecision(3); 我原以为 b 是“0.000300”,这正是我在 Firefox、IE 和 Chrome 中得
在将算法从 JavaScript 移植到 Java 时,我遇到了一个问题,即我需要替换 JavaScript 的 toPrecision()。问题是我不知道数字的大小,所以我不能使用具有正确格式的简单
我是 JavaScript 的新手,刚刚发现了 toFixed() 和 toPrecision() 来对数字进行舍入。但是,我无法弄清楚两者之间的区别是什么。 number.toFixed() 和 n
.toPrecision()方法如何知道PI的16°、17°和18°数字? var x = Math.PI; console.log(x); var y = new Number(x); consol
一、toPrecision toPrecision意思是保留精度,其参数是一个数字,表示可以保留精度的位数,支持四舍五入 let num = 0.11 console.log(num.toPrecis
关于 1.01+1.02 的著名问题是 2.0300000000000002 解决方法之一是使用 toFixed :例如 (1.01+1.02).toFixed(2) --->"2.03" 但是我看到
toPrecision的返回值是“一个字符串......以定点或指数表示法四舍五入到精确的有效数字。” 8.235 => "8.23"不是四舍五入。为什么不同? var toP = function
我决定拆分这个问题,因为它原来是多个问题合二为一。我用 parseFloat() 修复了 TypeError,但是代码不起作用,所以我提出了一个单独的问题。 我收到错误: “TypeError:‘un
我是一名优秀的程序员,十分优秀!