在JavaScript中,是否可以“锁定”十进制数,以保留以零结尾的“浮点数”?
例如,我有 2 个不同的数字,如下所示:(伪代码)
let a = 1.0;
let b = 1.00;
a === b // true, should be false, because different decimals.
print(a) // "1", should be "1.0"
print(b) // "1", should be "1.00"
(也应该不同于“true int”1
)
我希望它们彼此不同,因为它们末尾有不同数量的零。
但愚蠢的“高效”JavaScript 将它们都舍入为“整数”1
因此它们是平等的。
我知道Number.toFixed(Number)
& Number.toPrecision(Number)
函数,但要像这样使用它们,我必须首先计算数字的长度,但我不能这样做,因为 JavaScript 已经四舍五入了零。
我也一直在考虑“截掉”小数点处的数字并将它们存储在数组中......但同样,四舍五入为没有小数点的“int”。
(是的,我知道JS中不存在“float”的概念,我在这里用它来区分带小数或不带小数的数字)。
谢谢你的帮助。
要比较两个不定类型的变量,必须对变量进行内部转换。这就是问题。因为A和B都是厚度为1的集合。
因此结果为 True。
但是,如果要比较零的数量,则必须将它们作为字符串进行比较。
所以你要么用声明变量
let a = '1.0';
let b = '1.00';
或者你使用变量
a.toString() === b.toString();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)