簡體   English   中英

在JavaScript中獲取小數點后的數字

[英]Getting numbers after decimal in Javascript

我有一個顏色選擇器,返回的色相值是零到1之間的數字。要在色相上創建變化,我為0.2%添加0.2,為80%添加0.8。

如何使數字圍繞圓圈旋轉,以便當數字大於1時,它會減去1。如何將這個數字變成該數字:1.73540012511 ---> .7354

我嘗試使用“ cents” javascript(http://www.irt.org/script/6.htm),但是返回的值大於1: http : //jsfiddle.net/Se9Dn/

我不能使用Math.min,因為我希望1.2變為0.2(不要讓顏色在達到1時全部變為紅色)。

謝謝。 :)


編輯:確認解決方案,並添加了四舍五入。 假設您從Farbtastic返回了HSL顏色(色相,飽和度,亮度),並希望通過數學方式調整色相:

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

當心那些括號在其中非常棘手。

您可以使用模運算符%MDN docu )。

因此添加例如0.8

result = (result + 0.8) % 1;

編輯

JavaScript的模運算符實際上更多是余數運算符。

引用ECMAScript規范5.2節

符號“ x模y”(y必須為有限且非零)可計算與y(或零)具有相同符號的值k,使得abs(k)<abs(y)且x−k = q×y整數q

您只需減去整數:

function cent(amount) { return (+amount) - Math.floor(+amount); }

如果數字可以為負,則取決於您想要的語義。 我將其保留為練習:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM