23. april 2002 - 00:32Der er
12 kommentarer og 1 løsning
decimaltal
hvilken pakke vil I foreslaa hvis man skal arbejde med decimaltal i windows. Jeg kender Math::BigFloat, men denne pakke findes ikke til windows. De tal jeg skal arbejde med er max med 6 decimaler. Jeg skal addere / substrahere 2 tal. Det er det eneste. Nogen der har en god pakke?
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
uden at jeg har prøvet dit eksempel, skulle jeg ikke mene at det virker, da dette heller ikke virker:
print 1-0.999999æ
Men jeg har fundet en løsning som kan komme udenom problemet. Jeg er dog rimelig sikker paa at den er laangsom, idet jeg har millioner af tal der skal processeres. Derfor ville det være fedt med en anden løsning. Den jeg har fundet indtil videre, tager brug af modulet Math::Round således:
use Math::Round; print nearest(.000001, "1"-"0.999999");
desvaerre virker det ikke hos mig. Det foregaar paa en windows maskine, og der virker det ikke. Det har sikkert noget med C compileren at goere kunne jeg forestille mig.
Mht. din kommentar om brug af perl og min viden indenfor dette omraade, saa kan jeg kun sige, at jeg til fulde er kyndig indenfor perl.
En sidste ting. Jeg troede ikke jeg skulle hoere en saa spydig kommentar fra dig erikjacobsen. Jeg har flere gange haft kontakt med dig, og aldrig set denne side af dig. Jeg skriver dette som et problem - jeg proever skam ikke at lyve over for dig!
Hmm... jeg tror, vist jeg har sovet. Nu ser jeg, det er præcisionsfejlen, der generer dig. Ja, det er præcis det samme resultat i UNIX, og med Math::BigFloat giver det ganske rigtigt 1E-6 som det bør.
Men eftersom du ved, du kun skal operere med max 6 decimaler, kan du jo "tvinge" perl til at operere med en præcision på 6 decimaler på følgende måde:
Skal man have udskrifter med fast antal decimaler anbefaler jeg nu brugen af printf:
printf("%1.6f\n",23.24234234324);
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.