? Ett beräkningsfel är ett fel i driften av ett datorprogram där resultatet av en beräkning är utanför de definierade gränserna möjliggörs genom beräkning . Dessa fel kan införas genom buggar i datorprogram eller begränsningar i hårdvaran , och finns normalt med error - capture mekanismer som stoppa programmets verksamhet . Räknefel
En matematisk beräkning fel inträffar när en matematisk operation resultat inte kan beräknas av programvaran . Den vanligaste av dessa är en division med noll fel: valfritt antal dividerat med noll resulterar i oändlighet , vilket är typiskt en hejda fel i det språk som används för att skriva programmet . Division med noll fel lätt introduceras när variabler används i ekvationer : det är inte uppenbart att 1 /( cos ( x ) + 1 ) resulterar i en division med noll fel när x är lika med pi
.
Range fel
en rad fel inträffar när antingen ett nummer är för stort eller litet att företrädas av datorspråk , eller när ett fel - kontroll rutin avgör att ett resultat är meningslöst . Till exempel har många programspråk har en övre gräns på 2 ^ 32 , med det nummer 4294967296 eller högre kan resultera i en representation av oändligheten eller ett negativt tal , som då skulle orsaka nonsensresultat . Bra programmeringsteknik inkluderar intervall kontroll så är lämpligt , till exempel , kan ett hem termostat registrera temperaturer mellan 140 och -60 grader Fahrenheit , men skulle gå in felkorrigering om det registreras en temperatur på 350 grader Fahrenheit
.
checksum fel
en kontrollsumma fel är relaterat till en rad fel , men är alltid ett resultat av programmeringsfel - capture. Kontrollsummor snabba beräkningar som definierar villkor som måste vara sant , och upptäcka fel i inkommande data när deras resultat är falskt . Till exempel anser en lagerlokal som räknar inkommande objekt som alltid kommer fram i fall av 108 . Programvaran höra att 42.226 objekt kom igår . En kontrollsumma operation lägga siffrorna tillsammans skulle avgöra detta är felaktiga uppgifter : . 4 + 2 + 2 + 2 + 6 = 16 , men alla multiplar av 108 måste ha siffror som jämnt lägga till upp till en multipel av 9
Korrigering räknefel
kvalitet programvara innehåller alltid fel fångstmetoder som föregriper potentiella fel och hindrar dem från att stoppa programmet eller producera meningslösa resultat . Till exempel kan en översättning från decimaltal till binära tal orsaka vissa program för att konstatera att kvadraten av roten ur 2 var lika med 1,99 , vilket har korrigerats i många programmeringsspråk , men det åligger programmeraren att vara medveten om felkällor som denna , och korrigera dem när de uppstår . Till exempel, om en division med noll fel är fångad av bra mjukvara , istället för att krascha det skulle avgöra var noll input inträffade och påpeka detta för användaren .