Hello Rafael,
Le 16/05/2015 15:08, Rafael Guera a écrit :
Fyi, a basic way to insert 'commas' by handling the number as a
string, in case it helps:
x=-%pi*1e10;
sx=msprintf("%.4f",x); ///define decimal accuracy needed/
N=length(sx);
ifN<4 then return;
end
ix= strindex(sx,'.');
if_isempty_(ix) then ix=N+1;
end
sy=part(sx,1);
fori=2:ix-4
sy = sy+part(sx,i);
if _modulo_(ix-1-i,3)==0 then sy = sy+','; /// comma separator added/
end
end
sy= sy+part(sx,ix-3:N);/// No commas inserted after decimal point/
printf("%s\n%s\n",sx,sy)
Not so basic... A new C option for thousands separator could be useful.
Hereafter is another implementation.
Best regards
Samuel
x = -%pi*1e10;
sx = msprintf("%.4f",abs(x)) //define decimal accuracy needed
if x<0, s = "-"; else s = ""; end
if abs(x)<1000 then
sy = s+sx
else
dp = tokens(sx, ".");
if size(dp,1)==1, dp(2) = ""; else dp(2) = "."+dp(2); end
L = length(dp(1));
sy = s + strcat(strsplit(dp(1), L-(fix(L/3):-1:1)*3),",") + dp(2);
end
printf("%s\n%s\n",s+sx,sy)
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users