2016-09-28 57 views
-2

的Javascript計算怎樣才能確保我沒有得到一個負數出這個代碼:沒有負數

function reduction() { 
    ctrlreduct.setValue(Number(ctrl1.getValue()) + Number(ctrl2.getValue()) - Number(ctrl3.getValue())); 
}; 

我想任何負數默認爲零。如果決定

+3

'Math.max(0 ,x)'? – Bergi

+0

我猜'getValue'應該做解析和'setValue'應該做夾緊。不需要將邏輯放入'reduction'和所有其他使用這些值的函數中。 – Bergi

回答

0

只是要一個...

if ((ctrlreduct.setValue(Number(ctrl1.getValue()) + Number(ctrl2.getValue()) - Number(ctrl3.getValue()))) < 0) 
    { 
     ctrlreduct.setValue(0) ; 
    } 
+0

這使得'ctrlreduct.setValue()'返回值的一個很大的假設。更安全的做第一個計算 – charlietfl

+0

我實際上已經嘗試了兩種方式,並且當值支持它時它仍然返回一個負數。 – hvilberg

+0

是的,如果你看他的問題,他就是這樣調用函數的方式。 我不知道他在那裏做了什麼;) – MagiciaN

0

好了,我現在有一些作品:

function reduction() { 
var test = (Number(ctrl1.getValue()) + Number(ctrl2.getValue()) - Number(ctrl3.getValue())); 
ctrlreduct.setValue(Math.max(0,test)); 
}; 

Thx的幫助:)