Avatar billede hy Nybegynder
02. november 2000 - 22:56 Der er 16 kommentarer og
2 løsninger

Størrelse på variabel !

Er der en limit på hvor \"stor\" en variabel kan være ??


hyde
Avatar billede stigc Nybegynder
02. november 2000 - 23:01 #1
Ja det er der! men det kommer an på hvilken type det er: int, string , flydende tal etc.
Avatar billede ij Nybegynder
02. november 2000 - 23:01 #2
Lad mig sige det sådan. Du løber ikke ind i problemer med de varianter ASP bruger. De er rigeligt store, til stort set hvad som helst.
Avatar billede tdaugaard Nybegynder
02. november 2000 - 23:01 #3
Da der ikke rigtigt er nogle datatype som Integer, Long, Double, String etc. men at de sikkert alle sammen er af typen Variant tror jeg sådan set ikke rigtigt der er.. andet en begrænsning af RAM på serveren ..
Avatar billede ij Nybegynder
02. november 2000 - 23:02 #4
Selvfølgelig er der altid en begrænsning. Jeg har bare ikke stødt på den endnu.
Avatar billede tdaugaard Nybegynder
02. november 2000 - 23:02 #5
<< stigc >>

I ASP er der kun Variant!
Avatar billede stigc Nybegynder
02. november 2000 - 23:03 #6
hvid man siger

f = 23

så bliver f vel til en int, og kan ikke blive større end hvordan ASP har defineret en int?
Avatar billede ij Nybegynder
02. november 2000 - 23:06 #7
Jeg tror faktisk at der ikke findes den type typecasting, men at ASP gør det on the fly, og konverterer varianten til det den skal benyttes til i udtrykket den bliver brugt i.
Avatar billede tdaugaard Nybegynder
02. november 2000 - 23:06 #8
Nope ... så er F en variant ... og den tilpasser sig i størrelse til hvor stort et tal den indeholder..

f = CInt(60000) \' giver en fejl da en Integer Max kan være 32767
f = CLng(60000) \' ingen fejl da Long kan være 2GB (i længde/tal)
f = 60000 \' ingen fejl. f = long;variant
Avatar billede stigc Nybegynder
02. november 2000 - 23:07 #9
Det havde det - jeg lavede:

f= 345345345345345 (med 400 ciffer)

ASP sagde:

Der opstod en Microsoft VBScript-kompileringsfejl fejl \'800a0407\'

Tallet er ugyldigt

/tal.asp, linje 4

Avatar billede stigc Nybegynder
02. november 2000 - 23:08 #10
Så en begrænsning er der et sted! Måske ikke lige den jeg havde regnet med! :-)
Avatar billede ij Nybegynder
02. november 2000 - 23:09 #11
Hmmmmm så konverterer den åbenbart ved tildeling. What do you Know. Må jeg spørge om det er din børneopsparing der indeholder et heltal på 400 cifre, eller prøver du bare grænser med ASP ;-))
Avatar billede tdaugaard Nybegynder
02. november 2000 - 23:11 #12
Ja, det er sku da klart hvis du skrev 345, over 100 gange .. som jeg sagde ligger begrænsningen i RAM .. men Variant har sikkert også en begrænsning. Den har du så opnået her..
Avatar billede stigc Nybegynder
02. november 2000 - 23:11 #13
jeg testet udfra spørgmålet!
Avatar billede stigc Nybegynder
02. november 2000 - 23:13 #14
Det er jo ikke et ram problem, men en vurderingen under implementering af sporget, at der ikke er brug for så mange ciffer!

Jeg skrev også:

\"Så en begrænsning er der et sted! Måske ikke lige den jeg havde regnet med! :-) \"
Avatar billede erikjacobsen Ekspert
02. november 2000 - 23:13 #15
Hvis du ikke skal regne på det, stigc, skal du jo sådan set bare bruge det som en
streng.

  f = \"3434535435434 ...\"

og SKAL du regne på tallene har du problemet, fordi ASP/VB har den sædvanlige begrænsning
i størrelsen af tal. I gamle dage var det 16 bit (max ca. 32000 eller ca. 65000), nu er det
typisk 32 bit (ca. 2 mia eller ca. 4 mia), og nu eller i fremtiden er/bliver det måske 64 bit (det
er da godt nok nogle store tal).

400 decimale cifre kræver over 1000 bit.
Avatar billede stigc Nybegynder
02. november 2000 - 23:14 #16
hyg\' Jer jeg går i seng!
Avatar billede stigc Nybegynder
02. november 2000 - 23:17 #17
Jeg må lige kommentere!

Man kan jo sagtens regne med store tal.
ASP arbejder bare med potens af 10

91 betydende ciffere:

3,33333333333333E+90


Avatar billede erikjacobsen Ekspert
02. november 2000 - 23:24 #18
Men ikke eksakt. Det er kommatal, og du har kun 15 betydende cifre. Og der er også en øvre grænse
afhængig af den valgt slags kommatal. Prøv

  f = 2,234234234E+400

og se om det går an. Godnat!
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