Avatar billede dennism Nybegynder
28. februar 2004 - 18:21 Der er 13 kommentarer og
1 løsning

VB: pi

Jeg har følgende kode:

test = 2 / PI

Men når jeg kører denne, melder den fejl pga. "divided by zero". Det er fordi "PI" er lig nul. Men hvordan går jeg PI frem?
Avatar billede jpvj Nybegynder
28. februar 2004 - 18:22 #1
Din kode vil nok fejle, hvis du benytter Option Explicit

PI må du selv definere...

Altså

Dim PI
PI = 3.14......
Avatar billede jpvj Nybegynder
28. februar 2004 - 18:23 #2
3.1415926535 :-)
Avatar billede dennism Nybegynder
28. februar 2004 - 18:24 #3
Dvs. at det altså ikke er muligt at få VB til at bruge den korrekte PI-værdi?
Avatar billede jpvj Nybegynder
28. februar 2004 - 18:27 #4
Der findes ikke en eksakt rationel værdi for PI og en PC regner alligevel ikke med uendelig præcision, så det er vel ligegyldigt..

Skriv værdien ind med så mange decimaler som den datatype, der anvendes.
Avatar billede dennism Nybegynder
28. februar 2004 - 18:29 #5
Jeg sidder og er ved at lave et program til trekantsberegning. Hvor mange decimaler vil du anbefale at jeg bruger til PI?
Avatar billede Slettet bruger
28. februar 2004 - 18:47 #6
Pi med 50 decimaler.. skulle være nok.. ellers kan du bare spørge efter flere.. det burde være mere end rigeligt ;D...
3.1415926535914039784825424142192796639198932348258
Avatar billede dennism Nybegynder
28. februar 2004 - 19:35 #7
Hvordan kan jeg sætte PI til denne værdi?
Nu bruger jeg "global const" og der afrunder den selv :(
Avatar billede martin_moth Mester
28. februar 2004 - 21:20 #8
Du har jo fået svaret i et af dine andre geometri-spørgsmål, hvor sion skriver

Global Const PI = 3.14159265358979

Du skriver:
"Jeg sidder og er ved at lave et program til trekantsberegning. Hvor mange decimaler vil du anbefale at jeg bruger til PI?"

Det må du jo selv om! Dengang min far var ung, brugte man blot 22/7 som værdi for pi. Pi har jo den egenskab, at der er uendeligt mange decimaler, som ikke har noget mønster. Hvis du fx. dimmer den som en double, så brug det antal decimaler der svarer til den variabeltype.

Hvad mener du med at "den afrunder selv"? Hvis du skriver msgbox PI, kommer alle decimelerne med...
Avatar billede martin_moth Mester
28. februar 2004 - 21:22 #9
PS: Nu går du åbenbart meget op idecimaler - her er pi med 10000 decimaler:

http://www.cecm.sfu.ca/projects/ISC/data/pi.html
Avatar billede Slettet bruger
28. februar 2004 - 21:53 #10
og her er 10001 :D... www.vinnilerne.dk/pi.txt
Avatar billede slo Nybegynder
01. marts 2004 - 09:48 #11
Hvorfor bruge så mange decimaler - vil computerens maskinpræcision ikke alligevel sætte en begrænsning? Jeg vil derfor anbefale at du maks. bruger 14 decimaler!
Som alternativ kan du i øvrigt sætte en reference til fx. Excel (Project / References - sæt hak i Microsoft Excel 8.0 Object Library) og benytte
funktionen Excel.WorksheetFunction.Pi til at returnere pi med.
(Jeg ved ikke om der evt. er et perfomance-issue når du benytter excel-funktionerne.)
Avatar billede martin_moth Mester
01. marts 2004 - 10:47 #12
slo:

Hvorfor i alverden oprette reference til Excel bare for at få en værdi af en konstant, man lige så godt selv kan indtaste? Så er programmet bundet af at skulle køre på en PC med Excel installeret..

Hvad vinder du ved at refere til Excel frem for at angive en konstant i programmet? Intet....

I øvrigt så tror jeg denne diskussion om decimaler tager overhånd  - spørgsmålet går i bund og grund på hvordan man regner med PI i VB, og svaret er f.eks.

  Global Const PI = 3.14159265358979

Det skulle vist være rigeligt med decimaler :o)

dennism:

Hvis der ikke er mere, kan du så ikke lukke spørgsmålet?
Avatar billede dennism Nybegynder
01. marts 2004 - 15:30 #13
martin_moth >>

Smider du lige et svar?
Avatar billede martin_moth Mester
01. marts 2004 - 15:42 #14
bare giv til jpvj
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