Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

INT-Funktion rundet falsch

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Noch offen... Nur Kommentar
28.08.2005 20:40:55
Ramses
Hallo
Sei mir nicht böse, aber warum muss ich mir für 4 Zeilen Code eine ganze Mappe runterladen ?
Für alle anderen
Sub berechnen() zahl = 3 x = Log(zahl) / Log(zahl) MsgBox (x) MsgBox (Int(x)) End Sub
Das ist der ganze Inhalt der Mappe.
Erklärung habe ich aber auch keine dafür.
Gruss Rainer
AW: INT-Funktion rundet falsch
28.08.2005 20:43:41
Matthias
Hallo Andreas,
Excel ist für Rundungsfehler bekannt...
Log(zahl) / Log(zahl) ist wahrscheinlich 0,99999999999 oder so...
Aber Int() rundet nicht, es schneidet die Kommastellen ab.
Besser:
MsgBox Round(x, 0)
Gruß Matthias
Besser
Round(
AW: INT-Funktion rundet falsch
28.08.2005 20:47:22
Ramses
Hallo Matthias
Gibt es Unterschiede zwischen VBA-Berechnungen und Zell-Berechnungen betreffend Genauigkeit ?
 
 B
210.477121254719662
220.477121254719662
231
241
Formeln der Tabelle
B21 : =LOG(3)
B22 : =LOG(3)
B23 : =B22/B21
B24 : =GANZZAHL(B23)
 

Gruss Rainer
Anzeige
AW: INT-Funktion rundet falsch
28.08.2005 20:55:21
Matthias
Hallo Rainer,
schau mal, seltsam, oder?
Sub Berechnen() Dim zahl As Double, x As Double zahl = 3 Range("A1") = Log(zahl) Range("A2") = Log(zahl) x = Log(zahl) / Log(zahl) Range("A3") = Log(zahl) / Log(zahl) MsgBox "Differenz: " & Range("A3") - x End Sub Sub Berechnen2() Dim zahl As Double, x As Double zahl = 3 Range("A1") = WorksheetFunction.Ln(zahl) Range("A2") = WorksheetFunction.Ln(zahl) x = WorksheetFunction.Ln(zahl) / WorksheetFunction.Ln(zahl) Range("A3") = WorksheetFunction.Ln(zahl) / WorksheetFunction.Ln(zahl) MsgBox "Differenz: " & Range("A3") - x End Sub
Gruß Matthias
Anzeige
AW: INT-Funktion rundet falsch
28.08.2005 21:28:45
Ramses
Hallo Matthias
EXCEL scheint mit der Worksheet-Function tatsächlich anders zu rechnen ?
Ich bin ja nicht der Mathematiker, aber eigentlich sollten die LOG Funktionen doch sowohl auf Formelebene wie auch auf VBA-Ebene gleich sein
 
 ABC
11.0986122890.477121255 
2   
Formeln der Tabelle
B1 : =LOG(3)
 

A1 wurde durch deinen Code LOG(3) eingetragen
B1 ist die gleiche Formel =LOG(3) in der Zelle
Nun probier mal die beiden Codes im Debug-Fenster aus
Entspricht meiner Formel
Private Function Log10(X) Log10 = Log(X) / Log(10#) End Function
Enspricht deinem VBA Code
Private Function Log102(X) Log10 = Log(X) End Function
... und vergleich sie mit den Werten aus dem Tabellenbeispiel
Das ist die VBA-Hilfe für die LOG_Funktion
Log-Funktion
Gibt einen Wert vom Typ Double zurück, der den natürlichen Logarithmus einer Zahl angibt.
Syntax
Log(Zahl)
Das erforderliche Argument Zahl ist ein Wert vom Typ Double oder ein beliebiger zulässiger numerischer Ausdruck mit einem Wert größer als 0.
Bemerkungen
Der natürliche Logarithmus ist der Logarithmus zur Basis e. Die Konstante e entspricht ungefähr dem Wert 2,718282.
Sie können den Logarithmus zur Basis n für jede Zahl x berechnen, indem Sie den natürlichen Logarithmus von x wie folgt durch den natürlichen Logarithmus von n dividieren:
Logn(x) = Log(x) / Log(n)
Das folgende Beispiel veranschaulicht die Verwendung einer Function-Prozedur zur Berechnung von Logarithmen mit der Basis 10:
Das ist die Formel-Hilfe für die LOG_Funktion
LOG
Gibt den Logarithmus einer Zahl zu der angegebenen Basis zurück.
Syntax
LOG(Zahl;Basis)
Zahl ist die positive reelle Zahl, deren Logarithmus Sie berechnen möchten.
Basis ist die Basis des Logarithmus. Wenn das Argument Basis fehlt, wird es als 10 angenommen.
Schon Crazy die kleinen Unterschiede :-)
Gruss Rainer
Anzeige
@OT: Noch was witziges...
28.08.2005 21:31:06
Ramses
Hallo Matthias
gerade festgestellt
Gib mal in einem Antwortfenster diese Funktion ein

Private Function Log10(X)
Log10 = Log(X) / Log(10#)
End Function

Aber OHNE das "Private" am Anfang, und versuch dann noch einen Tabellenausschnitt mit der Jeanie darzustellen :-)
Gruss Rainer
AW: @OT: Noch was witziges...
28.08.2005 22:12:46
Matthias
Hallo Rainer,
so?

Function Log10(X)
Log10 = Log(X) / Log(10#)
End Function

 
 A
11
22
33
44
55
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Da kann ich nichts besonderes feststellen.
Gruß Matthias
Anzeige
Komisch...
28.08.2005 22:16:09
Ramses
Hallo Matthias
ich hatte vorhin sicher ein Viertelstunde geübt um den anderen Beitrag so darstellen zu können.
Es ging erst nachdem ich das "Private" hinzufügte.
Vorher zeigte er mir immer nur den HTML-Code direkt an.
Nun gut,... nehme ich halt mal so hin :-)
Gruss Rainer
AW: INT-Funktion rundet falsch
28.08.2005 22:23:23
Andreas
@ Matthias: Ja, du hast recht, "runden" ear der falsche Ausdruck von mir. Dennoch interessiert mich natürlich nur der ganzzahlige Wert des Logarithmus, mit echtem Runden ist mir da nicht geholfen.
@ Ramses: Das Problem kam mir so seltsam vor, daß ich lieber die "fehlerhafte" Arbeitsmappe beigelegt habe.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige