在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
&因此它们是相等的。
我知道CCD_ 3&Number.toPrecision(Number)
函数,但要像这样使用它们,我必须首先计算数字的长度,因为JavaScript已经四舍五入了零,所以我无法计算。
我也一直在考虑把小数点的数字"剪掉";将它们存储在阵列中。。。但是,再次四舍五入到没有小数点的"int"。
(是的,我知道JS中不存在"float"的概念,我在这里用它来区分带小数或不带小数的数字(。
谢谢你的帮助。
若要比较两个不确定类型的变量,必须在内部强制转换这些变量。这就是问题所在。因为A和B都是厚度为1的集合。因此,结果是正确的。
但是,如果要比较零的数量,则必须将它们作为字符串进行比较。
所以你要么用声明变量
let a = '1.0';
let b = '1.00';
或者使用强制转换变量
a.toString() === b.toString();