2016-10-06 2 views
-3

Я сделал супер простой скрипт, чтобы вытаскивать почасовые ставки из пула подсказок. Дело в том, что этот конкретный результат всегда ошибочно. Что, черт возьми, происходит?Простая математика выходит неправильно

var tips = prompt('Enter final tips after payouts and cleaning'); 
 
    
 
//Hours worked for both positions 
 
var tendHrsFirst = 11; 
 
var tendHrsSecond = 10; 
 
    
 
//Hourly Rate 
 
var barThourly = ((tips/(tendHrsFirst+++tendHrsSecond))); 
 

 
//This result here always comes out as if tendHrsFirst is 12 and not 11. 
 
var barToneTotal = (tendHrsFirst * barThourly); 
 
    
 
//This result is always correct 
 
var barTtwoTotal = (tendHrsSecond * barThourly); 
 
    
 

 

 

+3

WTH Вы думаете, что '+++' делает? – Bergi

ответ

6

Вы увеличивающиеся с tendHrsFirst++, так что на самом деле является 12.

Я думаю, те, на самом деле две команды.

tendHrsFirst++ Приращение tendHrsFrist на 1. После этого вы добавляете оба числа. Не уверен, почему вы думаете, что это хорошая идея. Очистка вашего кода должна помочь избежать таких ошибок.

+3

Следует, наверное, упомянуть, что поскольку postfix ++, 'tendHrsFirst' равен 11 для первого уравнения, а затем 12, поэтому' barTtwoTotal' верен – jonhopkins

+0

Точно. Операторы '+' и '++' имеют разные значения. См. Http://www.w3schools.com/js/js_operators.asp – noumenal

+1

Спасибо, по какой-то причине я думал, что + будет размещать их только рядом друг с другом, а +++ фактически добавит их. Я неправильно понял мой урок! Очень новое, спасибо за помощь. – Sam

0

здесь

var barThourly = ((tips/(tendHrsFirst+++tendHrsSecond))); 

вы используете +++, что означает увеличение постфикс tendHrsFirst и добавляют к tendHrsSecond

или, может быть увеличение префикса tendHrsSecond добавлен в tendHrsFirst

+1

Конкатенация является строковой операцией. В математике с числами мы просто назовем это добавлением: P – nbrooks

+0

вы на 100% правы ... thanxs для комментария :) –

+0

Это фактически постфиксная операция над 'tendHrsFirst' (а не префиксная операция) из-за [JavaScript-оператора приоритет] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence). – nbrooks

Смежные вопросы