![]() |
Single / Double / Extended - rechnen mit Gleitkommawerten
Hallo zusammen,
wieso entsteht aus einer Rechnung mit zwei Single Variablen ein Extended?
Delphi-Quellcode:
uses .., System.Math, System.Rtti; .. var lSingle1: Single; lSingle2: Single; lInteger: Integer; lValue: TValue; begin lSingle1 := 13.5; lSingle2 := 0.9; lInteger := Ceil( lSingle1 / lSingle2); // Ergibt 16 da mit Extended gearbeitet wird. lInteger := Ceil( Single( lSingle1 / lSingle2)); // Ergibt 15 da mit Single gearbeitet wird. lValue := ( lSingle1 / lSingle2); Showmessage( lValue.TypeInfo.Name); |
AW: Single / Double / Extended - rechnen mit Gleitkommawerten
Wieso ist die Erde rund?
Nichts passiert aus Zufall. Ein schlauer Kopf hat also wohl mal festgelegt das bei bestimmten Eingangstypen ein bestimmter Ausgangstyp verwendet wird. |
AW: Single / Double / Extended - rechnen mit Gleitkommawerten
Die FPU/CPU rechnet nunmal immer mit Extended.
Datenformat (Speicherformat) vs. Arbeitsformat. Extended war auch niemals als Speicherformat vorgesehen (drum implementieren andere Programmiersprachen es nicht direkt) und sollte normal immer nur für zischenergebnisse von Berechnungen verwendet werden. Wieso sollten die Entwickler nutzlos mehrmals Berechnungsfunktionen und die Hardware einbauen, wenn die große Berechnung ausreicht und man anschließend wieder runterrechnen abrunden kann, falls nötig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 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