16. december 2004 - 11:10Der er
9 kommentarer og 1 løsning
Hvorfor tillades division med 0
Under normale omstændigheder er division med 0 ikke en tilladt operation, og følgende udtryk (division mellem to integers) vil da også smide en ArithmeticException:
int result = 1000000 / 0;
Men hvis vi gør det ene tal i udtrykket til en double/float, sker der noget andet:
double result = (double) 1000000 / 0;
Her vil 'result' indtage værdien "Infinity" UDEN en ArithmeticException smides. For det første kan jeg ikke forstå, hvordan et tal kan være uendeligt, og for det andet kan jeg ikke forstå at divisionen med 0 tillades - nogen der har et bud?
float og double er fremragend etil det som de er beregnet til.
Det giver jo ingen mening at diskutere om man har 45 km til arbejde eller 45.00001 km til arbejde (forskellen er 1 cm og hverken hjem eller arbejde er præcist nok defineret til at 1 cm giver mening).
Man skal bare ikke bruge float/double til eksakte ting. 123.45 kroner er præcis det og ikke 123.44999 krone.
BigDecimal ja. Java har ikke nogen primitiv data type til det (som C# decimal).
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.