Avatar billede RasmusRR Nybegynder
18. december 2011 - 22:15 Der er 1 kommentar og
2 løsninger

Regner forkert når jeg dividere med 100

Jeg har et script som der finder ved hjælp af Randomize finder et tal mellem  1000 og 10 000.
Jeg støder ind i det problem at når jeg dividerer tallet med 100 får jeg ind i mellem et tal med mange decimaler.

f.eks.
9374 / 100 = 93,74001

Hvad går der galt??


Randomize
varTal1 = int(rnd * 8999) + 1000
varTal2 = varTal1/100
Avatar billede larste Nybegynder
19. december 2011 - 09:23 #1
Hmm, har ikke den store forstand på asp, men prøv det her:

varTal1 = Convert.ToInt32((rnd*8999) + 1000)
varTal = varTal1 / 100

Dette er ikke testet.
Avatar billede SkyShaker Nybegynder
20. december 2011 - 01:58 #2
Prøv med:
Randomize
varTal1 = int(rnd * 8999) + 1000
varTal2 = varTal1/100
varTal2 = replace(formatnumber(varTal2,0,0),".","")

den skulle i hvert fald gerne sørge for at du ingen decimaler får...

\SkyShaker
Avatar billede allanbang Nybegynder
20. december 2011 - 13:57 #3
http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems giver en forklaring på hvorfor det går galt når man konvertere fra heltal til decimaltal i en computer.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester