09. januar 2002 - 16:12Der er
17 kommentarer og 1 løsning
Store tal i Excel 2000
Hvordan får man Excel til at vise det præcise resultat ved beregninger/indtastninger over 10 i 15. potens. Kommer jeg derover får jeg konsekvent 0 som sidste ciffer/cifre.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
flemmingdahl>>bedre forslag, men det virker ikke. Prøv at få beregnet fx 2^60. Selv med den formattering, vil du kunne se, de fire sidste cifre er nuller i stedet for 6976, som det burde være. Excel slækker simpelthen på nøjagtigheden, når tallene bliver så store. Spørgsmålet er om, det kan forhindres/ændres.
Det kunne se udtil at Excel stopper ved 15 betydende cifre, og du er oppe på 19 - dette er jeg dog ikke sikker på, men fra det 16. ciffer starter 0 som sidste ciffer. 17 cifre er der mindst 2 nuller. 18 cifre er der mindst 3 nuller. 19 cifre er der mindst 4 nuller.
Jeg var kun klar over, at der regnes med 15-16 betydende cifre efter decimalet.
Jeg er ved at undersøge det - umiddelbart nej, men jeg vender tilbage. Prøv at lave følgende: A1 = 2 A2 = A1*2 kopier cellen 60 rækker ned efter først at have formateret A2 til et brugerdefineret format med f.eks. 20 nuller.
Det har jeg prøvet. Det giver samme resultat. Faktisk fandt jeg ud af denne begrænsning i Excel, da jeg ville lave en oversigt over det gamle sagn om skakspillets opfindelse (kender du det?): 1 riskorn på 1. felt, 2 på 2. felt, 4 på 3. felt, 8 på 4. felt osv, indtil 2 i 63. potens på 64. felt. Til min overraskelse måtte jeg konstatere, at det ikke kunne gøres helt nøjagtigt.
Jeg mener at kunne se at excel godt kan regne rigtig nok, men bare runder op eller ned ved 15/16 ciffer. Prøv at køre denne makro og se resultaterne i emmidiate-vinduet. Her får man alle cifre Sub big() Dim a As Variant a = 2 For i = 1 To 60 a = CDec(a + a) Debug.Print a Next i End Sub
hvis man derimod prøver dette så går det galt.
sub big2() Dim a As Variant a = CDec(2^60)+12 debug.print a end sub
bak>>Umiddelbart ville jeg have sat mine penge på dit andet eksempel. Det første indeholder så vidt jeg kan se ingen potensberegninger??
Jeg må dog meget brødbetynget og meget flov erkende, at jeg ikke kan få din makro til at virke. Jeg har kopieret den over i Excel via Visual Basic Editor og gemt projektmappen. Afspiller jeg herefter makroen, sker der absolut intet. Dette gælder for begge makroer. Hvorfor ikke? Og hvad er \"emmidiate-vinduet\"?
emmidiate = immediate I vba editoren gå op i view vælg immediate window eller tryk ctrl-G. I dette vindue kan man få skrevet ting med Debug.Print Hvis du stiller dig på din kode og trykker Run vil resultaterne komme i Immediate-vinduet Bak
Det er nu heller ikke et imponerende svar, derfor var det kun sat ind som kommentar. men hvis du vil gi, er det da dejligt :-)
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.