Javascript 剰余 (またはモジュラス) 演算子を使用すると、非常に奇妙な問題が発生します。
setWidth
ボードの幅全体 (余白を除く) を取得し、値が左の領域に直接収まるようにする必要があります。
これは、以下の例では、 を結果でarea
割ったときの余りが であることを意味します。setWidth
0
Javascript コード :
var totalWidth = parseFloat('519');
var setWidth = parseFloat('101.6');
var leftMargin = parseFloat('11');
var rightMargin = parseFloat('0');
var area = (totalWidth - leftMargin) - rightMargin;
console.log('area : ' + area);
//Incorrect Value given...
var modVal = area % setWidth;
console.log('modVal : ' + modVal);
//Correct value of 5...
var divisionVal = area / setWidth;
console.log('divisionVal : ' + divisionVal);
文字列から値を解析している理由は、実際にはページ上のテキスト ボックスから取得されるためです。
私の例 JSFiddleには 2 つの異なる例があり、1 つは期待どおりに動作しますが、もう 1 つは動作しません。唯一の違いは数字です。
上記の例では、値は次のようになります。
area = (519 - 11) - 0; //Should be 508 (and is)
modVal = 508 % 101.6; //Should be 0 (But isn't for some unknown reason)
divisionVal = 508 / 101.6; //Should be 5 (and is)
私の例の 1 つが機能し、もう 1 つが機能しない理由を誰かが説明できる場合は、喜んで聞いてください。しかし、現時点では、なぜこれが機能しないのか理解できません...
何か案は?