AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Ungültige Gleitkommaoperation nur bei bestimmten PC's
Thema durchsuchen
Ansicht
Themen-Optionen

Ungültige Gleitkommaoperation nur bei bestimmten PC's

Ein Thema von HCB · begonnen am 19. Dez 2023 · letzter Beitrag vom 22. Dez 2023
Antwort Antwort
Seite 6 von 6   « Erste     456   
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#51

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's

  Alt 22. Dez 2023, 10:10
Da lag ich mit dem IsZero aus der ersten Antwort ja gar nicht so falsch, nur dass die Prüfung nicht falsch, sondern nicht vorhanden war.

Warum die Exception aber nur auf manchen Rechnern ausgelöst wurde, bleibt aber weiterhin ungeklärt
Das kann durchaus am FPU control word liegen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
136 Beiträge
 
Delphi 12 Athens
 
#52

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's

  Alt 22. Dez 2023, 10:23
> Das kann durchaus am FPU control word liegen. <

Was bedeutet das??
Liegt es an der Hardware oder Windows Einstellungen auf den Rechnern wo es nicht läuft bzw. dass es der Fehler nicht auftritt?
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#53

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's

  Alt 22. Dez 2023, 10:27
https://docwiki.embarcadero.com/Libr...stem.Set8087CW
das Ding ist recht global. Und wenn jemand anders das anders setzt als man es haben will ...
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#54

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's

  Alt 22. Dez 2023, 10:31
frm_Main.edt_Marge.Text:= Format('%3f',[DataMod.Q_sArtikelmarge1.AsFloat/DataMod.Q_sArtikelArtEKQuer.AsFloat*100]);
Vielleicht solltest du vor der Division eine Prüfung auf IsZero machen.
Ich stecke gerade nicht so tief drin, was AsFloat bei einer leeren Datenmenge macht, aber man muss dort zumindest mit einer Division durch "0" rechnen. Ungültige Gleitkommaoperationen kann ich mir dabei durchaus auch vorstellen. Mit der FPU muss das nicht zwingend etwas zu tun haben.
Peter
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
136 Beiträge
 
Delphi 12 Athens
 
#55

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's

  Alt 22. Dez 2023, 10:39
Also wenn ich das mit FPU {delphi] System.Set8087CW($133f);[/delphi] einsetze, dann wird auch auf den besagten Rechnern keine Exception ausgelöst.
Das Programm läuft dann auf allen PC's ohne Fehlermeldung. Es sollte ja richtigerweise aber auf ALLEN eine Exception ausgelöst werden.

Wieder bleibt das Problem: Warum laufen drei Rechner ohne die Exception und zwei mit??
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#56

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's

  Alt 22. Dez 2023, 10:43
Wenn kein Datensatz vorhanden ist oder die Query auf EOF steht, sind die Felder NULL.
AsFloat macht daraus 0.
Division durch 0 ist eine ungültige Gleitkommaoperation.

Warum der Fehler nicht auf dem Entwicklungsrechner auftritt kann alle möglichen Ursachen haben.
Versuch einfach den Fehler bewust in Q_sArtikelArtEKQuer hervorzurufen (Last; Next; -> EOF).
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
618 Beiträge
 
Delphi 10.3 Rio
 
#57

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's

  Alt 22. Dez 2023, 13:10
Das Programm läuft dann auf allen PC's ohne Fehlermeldung. Es sollte ja richtigerweise aber auf ALLEN eine Exception ausgelöst werden.
Ein keiner Koogel hätte sicher schneller Egebnisse gebracht als hier drauf zu warten

Set8087CW / Reset8087CW Sample
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


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 14:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz