在Javascript中获取小数点后的数字

Jen*_*lle 1 javascript

我有一个颜色选择器,返回的色调值是0到1之间的数字.为了在色调上创建变化,我添加.2为20%,.8为80%等.

如何保持数字围绕圆圈,这样当数字超过1时,它会减去1.如何将此数字设为这个数字:1.73540012511 ---> .7354

我尝试使用"美分"javascript,(http://www.irt.org/script/6.htm),但返回值大于1:http: //jsfiddle.net/Se9Dn/

我不能使用Math.min,因为我希望1.2成为.2(当它们达到1时,颜色都不会变成红色).

谢谢.:)


编辑: 确认解决方案,添加了舍入.假设你有从Farbtastic返回的HSL颜色(Hue,Saturation,Luminosity)并且想要以数学方式调整Hue:

hslcolor  = (.73802938, .59832908, .948987);
colorStep = .2;
newcolor[0] = Math.round ( ((1*colorStep +hslcolor[0])%1)*10000 ) /10000;
Run Code Online (Sandbox Code Playgroud)

注意那些括号在那里非常棘手.

Sir*_*rko 5

您可以使用模运算符%(MDN文档).

所以要添加,例如0.8:

result = (result + 0.8) % 1;
Run Code Online (Sandbox Code Playgroud)

编辑

JavaScript的模运算符实际上更多是余数运算符.

引用ECMAScript规范第5.2节:

符号"x modulo y"(y必须是有限且非零)计算与y(或零)相同符号的值k,使得abs(k)<abs(y)和x-k = q×y整数q.