AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nachkommastellen zählen

Offene Frage von "JayK"
Ein Thema von JayK · begonnen am 31. Aug 2005 · letzter Beitrag vom 24. Sep 2005
 
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Nachkommastellen zählen

  Alt 24. Sep 2005, 21:30
Zitat von JayK:
Ich hab aber rausgefunden: Decimal kann auch nur 28 Stellen (nicht Nachkommastellen) darstellen. Heißt aber trotzdem Festkommatyp
? Irgendwo muss schon eine Grenze sein (oder programmiert Hagen schon unter .NET ?) .

Zitat:
Und weil ich vergessen habe, eine Sprache für den Thread festzulegen, möchte ich gerne noch wissen, wie man das mit Extended unter Delphi macht
Die Funktion von Khabarakh hat ja ordentlich funktioniert, wie würde die in Delphi aussehen?
const Double Epsilon = 1e-6d; Bei dem d hapert's. Das e nimmt er sogar schon an. (Ob richtig oder falsch weiß ich nich)
Literale in Delphi haben keine "Kennung":
const Epsilon = 1E-6; Fäst hätte ich vergessen, dass ich vor einer Woche ein Programm zum Auseinandernehmen von Decimal geschrieben habe:
Code:
                public static unsafe byte[] GetBytes(void* p, uint Length)
      {
         byte[] Bytes = new byte[Length];
         byte* bytep = (byte*) p;
         for (int i = 0; i < Length; i++) {
            Bytes[i] = *bytep;
            bytep++;
         }
         return Bytes;
      }
Für alle ohne Framework ein paar Ergebnisse:
Code:
1 =

Byte 0: 00000000 0
Byte 1: 00000000 0
Byte 2: 00000000 0
Byte 3: 00000000 0
Byte 4: 00000000 0
Byte 5: 00000000 0
Byte 6: 00000000 0
Byte 7: 00000000 0
Byte 8: 10000000 1
Byte 9: 00000000 0
Byte 10: 00000000 0
Byte 11: 00000000 0
Byte 12: 00000000 0
Byte 13: 00000000 0
Byte 14: 00000000 0
Byte 15: 00000000 0
Code:
1,00 =

Byte 0: 00000000 0
Byte 1: 00000000 0
Byte 2: 01000000 2
Byte 3: 00000000 0
Byte 4: 00000000 0
Byte 5: 00000000 0
Byte 6: 00000000 0
Byte 7: 00000000 0
Byte 8: 00100110 100
Byte 9: 00000000 0
Byte 10: 00000000 0
Byte 11: 00000000 0
Byte 12: 00000000 0
Byte 13: 00000000 0
Byte 14: 00000000 0
Byte 15: 00000000 0
Code:
-1,000000000000000000000 =

Byte 0: 00000000 0
Byte 1: 00000000 0
Byte 2: 10101000 21
Byte 3: 00000001 128
Byte 4: 01101100 54
Byte 5: 00000000 0
Byte 6: 00000000 0
Byte 7: 00000000 0
Byte 8: 00000000 0
Byte 9: 00000000 0
Byte 10: 00000101 160
Byte 11: 01111011 222
Byte 12: 10100011 197
Byte 13: 10110101 173
Byte 14: 10010011 201
Byte 15: 10101100 53
Sollte man die Bits noch umdrehen? So sollte es aber stimmen:
Code:
Byte 0-1: Unbenutzt
Byte   2: Exponent in Byte, 0 <= e <= 28
Byte   3: Vorzeichen, 128 = Negativ
Byte 4-7: 16 Bit Ganzzahl, 2. Teil der Mantisse
Byte 8-15: 32 Bit Ganzzahl, 1. Teil der Mantisse
Angehängte Dateien
Dateityp: zip decimal_501.zip (8,4 KB, 4x aufgerufen)
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz