[MontelLUG] [OT] Divisione per zero e pigrizia

Samuele samuele.zanin a tiscali.it
Sab 21 Mar 2015 19:13:06 CET


On 21/03/2015 15:31, Syslac wrote:

> Giusto, per completezza, appena provato su MySQL (sì, so che è una
> particolarità di MySQL e non particolarmente intelligente secondo me):
>> SELECT 1/0;
> NULL

Il fatto che ritorni null va più che bene.

>> SELECT IFNULL(1/0,5);
> 5.0
> 
> Non sono convinto che sia una grande idea però... voglio dire, come
> faccio a distinguere se 5 (o qualunque altro valore) è il risultato
> della divisione o è perché sto facendo una cosa che non dovrei?

Tu lo sai. Sai che se ritorna NULL è una divisione per zero oppure uno
dei due numeri in questione era NULL. Poi sta a te decidere che cosa
fare in caso di NULL, qui hai deciso di farlo valere zero.

Normalmente quando ho la divisione per zero, faccio come risultato zero.
Da un punto di vista puramente matematico non è il massimo della
correttezza, ma lo zero fa in modo che l'utente si accorga che c'è
qualcosa che non va. Se mettessi invece un numero altissimo, c'è il
problema di incappare in un overflow con qualche operazione successiva.

Es.: calcolare il rapporto tra il costo reale e quello previsto per
capire quanto sono stato bravo.
Se uno si dimentica di mettere dentro il costo previsto, non è che posso
mandare a ramengo tutto. Mostro zero, a quel punto l'utente indagherà.




More information about the montellug mailing list