FastFiber

atof rond ongewild af OPLOSSING ONMOGELIJK MAAR GEEN PROBLEEM

Gestart door delangstevandestraat, ma 05 09 2016, 16:02:58

Vorige topic - Volgende topic

delangstevandestraat

een kort vraagje :

(atof "1041.8957")
geeft als antwoord 1041.9

en dat wil ik niet ...

ik weet dat je bij rtos kan kiezen hoeveel digits er moeten omgevormd worden, maar dit is de omgekeerde richting

ik wil van "1041.8957" naar 1041.8957 geraken ?

alvast bedankt
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

gery

#1
(rtos (atof "1041.8957") 2 4)
Het laatste argument (4) geeft het aantal decimalen, max. is 16.
AutoCAD 2020 - Windows 10

delangstevandestraat

#2
de vraag gaat over ATOF en niet rtos

want de code die jij voorstelt doet niets, gewoon over en weer

ik wil 1041.8957 als antwoord krijgen zonder afronding !
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

Reimer

Ik meende al dat hier al eerder over geschreven was. En zie hier (geheugen hè :) )
http://www.cadsite.be/smf/index.php?topic=3275.msg16595#msg16595

Ik heb het niet nagelezen, kijk even of je hier een antwoord vindt.

Reimer.

gery

#4
Citaat van: delangstevandestraat op di 06 09 2016, 07:34:56
de vraag gaat over ATOF en niet rtos

want de code die jij voorstelt doet niets, gewoon over en weer

ik wil 1041.8957 als antwoord krijgen zonder afronding !
Bij mij werkt die code perfect, ik krijg 1041.8957 zonder afronding.

Edit: ik denk dat ik u verkeerd begrepen heb, je wil dus de aanhalingstekens weg? De waarde waarvan je de aanhalingstekens weg wil, is dat normaal een variabele?
AutoCAD 2020 - Windows 10

Reimer

Even googlen geeft veel info. (bv. http://www.cadtutor.net/forum/showthread.php?58990-Atof)
De nauwkeurigheid blijft wel bestaan maar wordt niet getoont.

Reimer.

bart

(atof "1.12345678")

probeer deze eens voor de fun geeft bij mij wel 5 cijfers achter te komma  :shock:

Er is best veel te vinden op het net over dit fenomeen.
diverse oplossingen maar geen simpele systeemvariabele of iets dergelijks.

Als je de waarde in een variabele stopt rekent hij wel met het volledige getal.

Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

delangstevandestraat

@ bart

resultaat : 1.12346  inderdaad 5 cijfers maar dus wel afgerond

dus ook niet compleet ;-(

er is inderdaad veel over te vinden en men haalt er iedere keer rtos bij, maar ik heb nog nergens een oplossing gevonden die me een atof zonder afronding oplevert

ter info: het getal is bij mij een x-waarde van een positie, en als lisp afrond dan klopt de positie dus niet meer..
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

gery

Kan je de LISP routine posten? Misschien is er een andere oplossing?
AutoCAD 2020 - Windows 10

Reimer

In de link uit mijn vorige bericht staat dat atof altijd een resultaat van 6 getallen geeft, ongeacht het aantal decimalen. Het getal wordt ook niet afgerond maar afgekapt na 6 getallen. De nauwkeurigheid is echter niet in het geding.
Als je het gestal opslaat in een variabele (setq x1 (atof "1041.8957")) dan geeft de variabele het afgekapte getal als resultaat. Desondanks is het getal niet afgerond en kun je er gewoon mee verder werken.

Misschien helpt het volgende voorbeeld:

(defun c:test ()
(setq x1 (atof "1041.8957"))
(princ "\nx1 = ")
(princ x1)
(princ "\nrtos van x1 = ")
(princ (rtos x1 2 4))
(princ "\nx2 = x1 - 0.001")
(setq x2 (- x1 0.001))
(princ "\nx2 = ")
(princ x2)
(princ "\nrtos van x2 = ")
(princ (rtos x2 2 4)))


delangstevandestraat

De getallen die niet getoond worden blijven inderdaad achter de schermen in het systeem zitten,
ik het een lijn getekend naar de schijnbaar afgeronde waarden, en in de properties van autocad blijkt dat de lijn wel effectief naar het correcte punt is getekend.

Bij deze bedankt om te helpen zoeken,

item Afgesloten
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

delangstevandestraat

Extra info :
ik heb ook ondekt dat DIMZIN ook een invloed heeft op RTOS
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

FastFiber