vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: 143253=>1.4325 auto umwandeln 
Autor: Preisser
Datum: 18.11.10 17:49

Oder noch einfacher:
Dim Zahl1 As Double, Zahl2 As Double
Zahl1 = 12345
If Zahl1 = 0 Then Zahl2 = 0 Else Zahl2 = Zahl1 / 10 ^ ((Val(Log(Abs(Zahl1)) / _
  Log(10)))) ' ergibt 1,2345
Die If-Abfrage wird benötigt, da der Logarithmus von 0 nicht definiert ist. Val muss statt Int verwendet werden, obwohl es das Argument zuerst in eine Zeichenfolge konvertiert, da Gleitpunktzahlen nicht exakt sind und beispielsweise Int(0.3 * 10) = 2 ist, aber Val(0.3 * 10) = 3.

Probleme, die bei der Stringzerlegung auftreten können (also Zahl in String konvertieren, in der Mitte ein Komma einfügen und wieder zusammensetzn) sind:
- Man darf nicht einfach ein "," einfügen, sondern muss das Trennzeichen benutzen, das in den Regionsoptionen von Windows eingestellt ist
- Man müsste vorher prüfen, ob die Zahl negativ ist, da sich dann die Stelle, wo das Komma einzufügen ist, verschiebt
- Gleitkommazahlen wie 1.4E+30 (also in der Exponentendarstellung) müsste man gesondert behandeln.

Edit: Sorry, die Val-Funktion ist hierfür auch nicht unbedingt geeignet, da sie einen "." als Dezimaltrennzeichen erkennt. Ich weiß jetzt nicht, ob VB6 andere Abrundugnsfunktionen hat (glaub eher nicht). Das beste wäre da wohl trotzdem, die Zahl so lange durch 10 zu teilen, bis sie < 10 ist.

Beitrag wurde zuletzt am 18.11.10 um 18:22:31 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
143253=>1.4325 auto umwandeln1.239marvin_9408.11.10 14:21
Re: 143253=>1.4325 auto umwandeln875Manfred X08.11.10 15:07
Re: 143253=>1.4325 auto umwandeln825marvin_9409.11.10 18:14
Re: 143253=>1.4325 auto umwandeln898Radames09.11.10 19:05
Re: 143253=>1.4325 auto umwandeln882marvin_9409.11.10 19:16
Re: 143253=>1.4325 auto umwandeln866marvin_9409.11.10 19:20
Re: 143253=>1.4325 auto umwandeln880ElTosalet18.11.10 16:41
Re: 143253=>1.4325 auto umwandeln868Preisser18.11.10 17:49
Re: 143253=>1.4325 auto umwandeln885marvin_9421.11.10 10:15
Re: 143253=>1.4325 auto umwandeln903Preisser21.11.10 12:19
Re: 143253=>1.4325 auto umwandeln815ElTosalet21.11.10 13:45
Re: 143253=>1.4325 auto umwandeln784Preisser21.11.10 15:45

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel