SOFiSTiK Forum

It is currently Wed Nov 20, 2019 11:40 am

All times are UTC




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Modolo
PostPosted: Fri Oct 07, 2016 9:44 am 
Offline

Joined: Fri Oct 07, 2016 9:40 am
Posts: 4
Hallo,

kann mir einer auf die schnelle helfen? Ich verstehe absolut nicht, warum dieser Text nicht funktioniert.
Theoretisch müsste ich ja bei der #rf=0.1 rauskommen, lande aber bei 0.05. Hab ich bei der Syntax etwas falsch gemacht? Ich habe sämtliche Klammerstellungen schon ausprobiert.

Es sind normalerweise Variablen, hab diese jetzt einfach durch die entsprechenden Zahlen ersetzt.

Meine Idee war: Ich überprüfe, ob die 0.2 ein Teiler aller zahlen ist, und zwar über die Modolo-Funktion, d.h. Divisionsrest. In der if-Abfrage hat 1.5/0.2 ein Rest, also wird die 0.1 überprüft, dort sollte es dann klappen.

IF (MOD(1.2,0.2)==0) & (MOD(1.8,0.2)==0) & (MOD(1.5,0.2)==0) & (MOD(1.5,0.2)==0)
STO#rf 0.2[m]
ELSEIF (MOD(1.2,0.1)==0) & (MOD(1.8,0.1)==0) & (MOD(1.5,0.1)==0) & (MOD(1.5,0.1)==0)
STO#rf 0.1[m]
ELSE
STO#rf 0.05[m]
ENDIF


Top
 Profile  
 
 Post subject: Re: Modolo
PostPosted: Fri Oct 07, 2016 12:49 pm 
Offline
User avatar

Joined: Thu Dec 30, 2004 7:18 am
Posts: 9
Das Problem sind vermutlich die Gleitkommaoperationen, die nie exakt Null ergeben. Der Vergleich "==0" sollte umformuliert werden zu einem Vergleich "< epsilon", wobei als "epsilon" sinnvoll kleiner Wert angegeben weden sollte (z.B. 1E-8)


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group