On Fri, Apr 3, 2009 at 03:02, Curiouslearn wrote: > Hi, > I want the labels as (0.5,0.55,0.6,0.65,0.7,...,1) > or (0.50,0.55,0.60,0.65,0.70,...,1). Either of these two is fine. > I tried the following code for this. > \starttext > \startuseMPgraphic{labeltest} > numeric rmin,rmax; > rmin := 0.5; rmax := 1; > ux := 25cm; uy :=10cm; > % draw axes > draw (rmin,0)*ux -- (rmax+0.1,0)*ux; > draw (rmin,0)*ux -- (rmin*ux,(1.1)*uy); > for x = 0.5 step 0.05 until 1.1: > label.bot(textext(decimal(x)),(x*ux,x*uy)); > endfor; > \stopuseMPgraphic > \useMPgraphic{labeltest} > \stoptext > I get (0.5,0.55, 0.6,0.65001,0.70001,0.75002,...,1.00003) instead. I don't > understand why I get more than 2 digits after 0.6.
It's because you get exact numbers in the terms what metapost considers exact (multiples of 2^{-something}). You have exactly the same problem if you work with floating points with any other programming language. > Is there a way to > restrict the number of digits after the decimal point. > Thanks very much. See page 18 of metapost manual (speaking of metapost manual present in TeX Live): ----- 6.2 Operators The length operator returns the number of characters in a string. For substring construction, the ⟨of operator⟩ substring is used like this: substring ⟨pair expression⟩ of ⟨string primary⟩ substring (2,4) of "abcde" is "cd". ----- You can use substring (0,4) to truncate the number. 0.5 might need special treatment, so you either need to concatenate it with 0 at the end or you need to check the lenght of string before using substring. Mojca ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________