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
(rtos (atof "1041.8957") 2 4)
Het laatste argument (4) geeft het aantal decimalen, max. is 16.
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 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 (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.
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?
Even googlen geeft veel info. (bv. http://www.cadtutor.net/forum/showthread.php?58990-Atof (http://www.cadtutor.net/forum/showthread.php?58990-Atof))
De nauwkeurigheid blijft wel bestaan maar wordt niet getoont.
Reimer.
(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.
@ 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..
Kan je de LISP routine posten? Misschien is er een andere oplossing?
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)))
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
Extra info :
ik heb ook ondekt dat DIMZIN ook een invloed heeft op RTOS