<div dir="ltr">Thanks to all. I think I have found my answer. Suppose in xepersian, \decimalseparator stands for unicode character 066B, then the following code does what I want:<br><br><br>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br>
\def\@writeDecimals#1{%<br>  \ifx\@xyDecimals\@empty% take value as is<br>    \def\@tempa{#1}% write only if not empty<br>    \ifx\@tempa\@empty% write nothing<br>    \else<br>      \ifPst@comma{,}\else\decimalseparator\fi%<br>
      #1%<br>    \fi%<br>  \else% write only \xy@decimals<br>    \ifnum\@xyDecimals&gt;\@zero<br>      \ifPst@comma{,}\else\deciamlseparator\fi<br>        \@Reset@digitcounter<br>        \expandafter\@process@digits#1*;<br>
      \fi%<br>  \fi%<br>}<br>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br><br>Thanks<br></div>