感觉就像我在这里遗漏了一些明显的东西。这个问题已经被问过很多次了——答案通常可以归结为:
var num = 4.5;
num % 1 === 0; // false - 4.5 is a decimal
Run Code Online (Sandbox Code Playgroud)
但是,这失败了
var num = 1.0; // or 2.0, 3.0, ...
num % 1 // 0
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些也不起作用
num.toString() // 1
typeof num // "number"
Run Code Online (Sandbox Code Playgroud)
我正在编写一个 JavaScript 颜色解析库,如果输入为 1.0 或 1,我希望以不同的方式处理输入。在我的例子中,1.0真正意味着 100%,1意味着 1。
否则, 和rgb 1 1 1都rgb 1 255 255将被解析为rgb 255 255 255(因为我现在用 <= 1 的任何东西来表示比率)。