PDA

Vollständige Version anzeigen : auf Ganzähligkeit nach division prüfen!


bluecat
29.09.2005, 17:54
Hallo Leut'
ich möchte die Ganzäligkeit des Ergebnis prüfen, möchte aber kein "mod" Befehl benutzen, gibt es möglichkeit so was zu machen?
Die Zahlen in meiner Tabelle sind Gleitkommazahlen
( 14,2 ; 28,4 ;13,3; 26,6 ...)
diese Zahlen müssen durch die Zahlen in einer anderen Tabelle (7,1 13,3......) teilen. Wenn es ganz ist dann ergibt sich das Ergebnis, am Ende werden alle Ergebnisse summieren.
Gibt irgendeine Funktion außer "mod-funtion" noch zu prüfen?

Danke im Voraus!

Nouba
29.09.2005, 18:07
Die Int-Funktion gibt den Ganzzahlanteil einer Zahl zurück von der die Zahl selbst substrahiert werden kann. Ist das Ergebnis der Substraktion 0, so ist Zahl ganzzahlig.

tsw
29.09.2005, 21:12
Hi,
ich habe gerade gelesen, dass bei der Funktion Int bei negativen Zahlen abgerundet wird. Es gibt da noch die Funktion FIX. Versuch es mal damit.

Gruss TSW

bluecat
30.09.2005, 15:28
Hallo Leute!
Ich möchte aber nicht die Ganzanteil haben,sondern prüfen ob es wirklich teilbar ist
z.B 6:3= 2 Richtig! ---->speichern 6:4 =1,5---> falsch, nächste Zahl durchteilen
6:6=1 richtig--->annehmen --->Summe 2+1=3 usw... so habe ich gemeint

Nouba
30.09.2005, 15:50
Wo ist das Problem bei der Überprüfung des Ergenisses?

bluecat
30.09.2005, 17:21
Ich möchte kein mod-Funktion benutzen, da die Zahlen nicht ganzen Zahlen sind, ich will auch nicht runden.Die Werte sind gleitkommazahlen (z.B 12,34;24,36 usw) und die zuteilende Zahlen auch genau so (zB. 6,17;6,09 usw.)
also 12,34:6,17=2 OK!
24,36 : 6,09 = 4,.... nicht annehmen
24,36:6,09=4 OK!
usw
Die andere funktion runden das ergebnis, das ist dann falsch

Arne Dieckmann
30.09.2005, 17:27
Hast du Noubas Vorschlag überhaupt schon richtig umgesetzt? Du musst normal dividieren. Merke dir das Ergebnis, bilde von dem Ergebnis mit Int() eine Ganzzahl. Ziehe vom ersten Ergebnis die Ganzzahl ab - wenn das 0 ergibt, ist das Ergebnis also ganzzahlig.

bluecat
30.09.2005, 17:32
Ich prob's mal, hab voeher falsch verstanden :) Danke esrtmal

bluecat
30.09.2005, 17:33
Ich prob's mal, hab vorher falsch verstanden :) Danke esrtmal

bluecat
04.10.2005, 07:52
ich hab versucht aber komische weise wenn zb. n=2 bringt int(n)=1 . Es muss aber auch 2 sein,verstehe nicht warum. ich hab die Werte als Single definiert

tsw
04.10.2005, 22:05
Hier mein Vorschlag:

Function IstGanzeZahl(myZahl As Double) As Boolean
IstGanzeZahl = (myZahl - Fix(myZahl)) = 0
End Function

Das ganze kannst Du im Direktfenster im Bereich Module testen.
so z.B.
? IstGanzeZahl ( 11/3)
Falsch
? IstGanzeZahl ( 21/3)
Wahr
? IstGanzeZahl ( -100.99 )
Falsch
? IstGanzeZahl ( 102.003)
Falsch
? IstGanzeZahl ( 1E99 )
Wahr

Gruss TSW