Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  rätselhaftes rem

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  rätselhaftes rem (686 mal gelesen)
flaschenpost
Mitglied
Architekt


Sehen Sie sich das Profil von flaschenpost an!   Senden Sie eine Private Message an flaschenpost  Schreiben Sie einen Gästebucheintrag für flaschenpost

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 28. Dez. 2004 13:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo LISPler,

wer kann das Rätsel mit rem lösen ?
Eigentlich könnte man rem gut zum Runden nutzen ...


(rem 13 4) ergibt 1 
(rem 12 4) ergibt 0  ... so haben wir das auch erwartet.

(rem 2.0 0.5) ergibt 0 ... genau !

(rem 1.0 0.1) ergibt .1  ... aber was ist das ?
(rem 2.0 0.2) ergibt .1999999999999999 ... es wird ja immer verrückter,
(rem 9.0 0.3) ergibt .0000000000000003 ... und das erst !


(rem 0.2 0.1) ergibt 0 ... endlich klappt es -
(rem 0.9 0.3) ergibt .0000000000000001 ... oder doch nicht ?


Gruß Carsten


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


Sehen Sie sich das Profil von Proxy an!   Senden Sie eine Private Message an Proxy  Schreiben Sie einen Gästebucheintrag für Proxy

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, ...,
AutoCADs 200X, SWX 2kX

erstellt am: 28. Dez. 2004 14:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für flaschenpost 10 Unities + Antwort hilfreich

The el allmighty onlinehelp said once:
Return Values

A number. If any number argument is a real, rem returns a real; otherwise, rem returns an integer. If no arguments are supplied, rem returns 0. If a single number argument is supplied, rem returns number.

So ist es leider oder auch gottsei dank der einfach dabei achten ob die Funktionsargumente auch alle keine Reals bzw. Ints sind.

------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

autocart
Mitglied
Technischer Redakteur


Sehen Sie sich das Profil von autocart an!   Senden Sie eine Private Message an autocart  Schreiben Sie einen Gästebucheintrag für autocart

Beiträge: 695
Registriert: 08.09.2003

erstellt am: 29. Dez. 2004 08:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für flaschenpost 10 Unities + Antwort hilfreich

tja, ich versteh' proxys Antwort auch nicht.
zb bei (rem 1.0 0.1) müsste ja 0.0 rauskommen und nicht .1
dass es eine real ist ist ja ok, aber das Ergebnis ist schlicht und einfach falsch.
Grüße, Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

hedonis
Mitglied
Ja


Sehen Sie sich das Profil von hedonis an!   Senden Sie eine Private Message an hedonis  Schreiben Sie einen Gästebucheintrag für hedonis

Beiträge: 11
Registriert: 01.12.2004

Windows 2000/SP3
AutoCAD 2004/SP1a
Hp DesignJet 800

erstellt am: 29. Dez. 2004 10:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für flaschenpost 10 Unities + Antwort hilfreich

interessant, weil es teilweise andere, aber trotzdem falsche ergebnisse bei mir gibt:

(rem 2.0 0.1) 0.1
(rem 0.9 0.3) 5.55112e-017
(rem 9.0 0.3) 3.33067e-016

hat das was mit der zahlendarstellung im acad zu tun?

------------------
Wer einen Fehler findet, darf ihn behalten.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

flaschenpost
Mitglied
Architekt


Sehen Sie sich das Profil von flaschenpost an!   Senden Sie eine Private Message an flaschenpost  Schreiben Sie einen Gästebucheintrag für flaschenpost

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 29. Dez. 2004 10:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Wegen der besseren Darstellung habe ich alles mit rtos und 16 Stellen in Zeichenketten konvertiert, die Ergebnisse müßten überall gleich (falsch) sein.

Nach der Hilfe sind reelle Zahlen bei rem erlaubt.


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

autocart
Mitglied
Technischer Redakteur


Sehen Sie sich das Profil von autocart an!   Senden Sie eine Private Message an autocart  Schreiben Sie einen Gästebucheintrag für autocart

Beiträge: 695
Registriert: 08.09.2003

erstellt am: 29. Dez. 2004 11:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für flaschenpost 10 Unities + Antwort hilfreich

ok Leute,
ich habe folgendes auf mapcars tutorial seiten gefunden:

(rem 50 7)            =>  1
; gibt nur den Rest wieder, der bei
; einer Ganzzahldivision übrigbleibt.

Er schreibt aber im ganzen tutorial nichts von reals in Verbindung mit rem. In so einem Fall vertraue ich eher mapcar als der online hilfe von autocad (Erfahrung!). Also nehmen ich einmal an, dass rem mit reals einfach nicht richtig funktioniert (nicht verwendet werden soll), und dass die autocad hilfe in diesem fall einfach falsch ist.
Grüße, Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dabrunz
Mitglied



Sehen Sie sich das Profil von Dabrunz an!   Senden Sie eine Private Message an Dabrunz  Schreiben Sie einen Gästebucheintrag für Dabrunz

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 29. Dez. 2004 12:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für flaschenpost 10 Unities + Antwort hilfreich

Guten Tag zusammen.

Das mit den REAL-Zahlen scheint ja eine "Never-Ending-Story" zu sein. Um ein wenig Licht ins Floting-Point-Dunkel zu bringen, 2 Bemerkungen und ein Verweis auf einen früheren (detailierteren) Beitrag:

- die Rundungs-Fehler sind weder AutoCAD noch dem LISP-Interpreter anzulasten, sie liegen in der Implementierung von REAL-Zahlen in der sog. "Floating-Point-Aritmetik" begründet, wo die Konvertierung von Dezimal- in Binaärzahlen die Rundungsfehler verursacht;

- nur ein Wechsel des zu Grunde liegenden Zahlenmodells kann diese Probleme beheben (BigDezimal ist eine denkbare Alternative)

- ein ausführliches Beispiel findet sich in diesem Beitrag.

Achim Dabrunz

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 29. Dez. 2004 13:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für flaschenpost 10 Unities + Antwort hilfreich

Kleine Anmerkung: Dass in meinem Tutorial nur von Rem in Verbindung mit Ganzzahlen die Rede ist, liegt einfach daran, dass es normalerweise mit diesen verwendet wird. Es kann aber auch mal vorkommen, dass man Winkel 'kürzt', z.B. mit (rem a pi).

Achims Erläuterungen sollten übrigens schleunigst als 42er Kapitel versenkt werden!

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

flaschenpost
Mitglied
Architekt


Sehen Sie sich das Profil von flaschenpost an!   Senden Sie eine Private Message an flaschenpost  Schreiben Sie einen Gästebucheintrag für flaschenpost

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 29. Dez. 2004 14:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Nochmal zur Erinnerung :
"(rem 2.0 0.2) ergibt .1999999999999999 ... es wird ja immer verrückter "

Und jetzt Eingabe: (rtos (/ 2.0 0.2) 2 16) ... ergibt "10"

Geschafft !!!  Trotz "Floating-Point-Aritmetik" !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz