2015-11-21 6 views
5

Ho 2 metriche e cerco di trovare la differenza del valore medio tra di loro in percentuale come 100*(m1+m2)/m1 ma questo produce ovviamente NaN se m1 si trasforma a zero.Come gestire NaN in Bosun?

Come devo gestire questo caso se non desidero avvisare quando le metriche diventano zero?

risposta

3

Con boun il bosun ha un comportamento simile a short-circuit. Dal linguaggio delle espressioni di Bosun manca istruzioni if, è necessario utilizzare un'operazione bool per vedere se il divisore è 0 prima:

$foo = 0 
$foo && 1/$foo 

Da $ pippo è pari a zero, l'affermazione "non è vero", così 1/$ pippo è non presi in considerazione nel calcolo finale:

enter image description here

+0

Grazie! Per me va bene. Non ho mai pensato di usare l'editor di espressioni in questo senso. Dovrebbe davvero aiutare a provare a giocare con le espressioni prima di provarle come regole. – timurb

+0

@timurb: sì Craig ha aggiunto che circa un mese fa, bello fare variabili in precedenza nel flusso di lavoro –

+0

Se si utilizza questo approccio, si perde il valore 1/$ pippo quando $ pippo non è 0: $ foo = 5 $ foo && 1/$ pippo risultato: 1 (cioè vero) e se si desidera avere 1/$ pippo se $ pippo! = 0 ma 0 se $ pippo == 0? – andresp