21. november 2002 - 16:11Der er
6 kommentarer og 3 løsninger
12345678901234567 + 1
Hej Eksperter
Dette problem er nok det mest bannale jeg har haft i min vb-aera i mit liv: Hvis jeg har et tal 12345678901234567 og lægger 1 til får jeg 1,23456789012346E+16! Hvordan sørger jeg for at få tallet 12345678901234568?
Variablen som jeg skal ende med skal være en string.
Fidusen er at jeg tager et MEGET stort tal som en streng og adderer en long til en mindre del af tallet (den højre side). Derved kan jeg sagtens operere på astronomiske tal så længe jeg ikke adderer noget større end en long. PS: Bemærk at jeg snupper et ekstra tegn - for at tage højde for f.eks. 5+5 der jo giver 10.
Variabler af typen Decimal lagres som 96-bit (12-byte) heltal uden fortegn, der skaleres med en variabel potens på 10. Potensen på 10 skaleringsfaktor angiver antallet af cifre til højre for decimaltegnet og områder mellem 0 og 28. Med en skala på 0 (ingen decimaler) er den størst mulige værdi +/-79.228.162.514.264.337.593.543.950.335. Med 28 decimaler er den største værdi +/-7,9228162514264337593543950335 og den mindste ikke-nul værdi er +/-0,0000000000000000000000000001.
Bemærk! På dette tidspunkt kan datatypen Decimal kun anvendes i en variant, dvs. du kan ikke erklære, at en variabel er af typen Decimal. Du kan dog oprette en variant, hvis undertype er Decimal ved hjælp af funktionen CDec.
Jeg kan ikke svare, men jeg kan da forklare dit problem lidt: Det E der kommer betyder Eksponent! Efter E'et kommer der et plus-tegn og efter det igen kommer der så et tal (I dette tilfælde 16). Det vil betyde at du (I dette tilfælde) skal flytte det komma (der er kommet oppe foran) 16 plasser til højre!!
\LoViX
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.