Is it really a must to use a fields.
Here is a function that I use to write area as a decimal number written according ISO standard.
Numbers should be printed in upright (roman) type.
ISO 31-0 (after Amendment 2) specifies that "the decimal sign is either the comma on the line or the point on the line". This follows resolution 10[1] of the 22nd CGPM, 2003.[2]
For example, one divided by two (one half) may be written as 0.5 or 0,5.
Numbers consisting of long sequences of digits can be made more readable by separating them into groups, preferably groups of three, separated by a small space. For this reason, ISO 31-0 specifies that such groups of digits should never be separated by a comma or point, as these are reserved for use as the decimal sign.
For example, one million (1000000) may be written as 1 000 000.
For numbers whose magnitude is less than 1, the decimal sign should be preceded by a zero.
The multiplication sign is either a cross or a half-height dot, though the latter should not be used when the dot is the decimal separator.
(defun razd (num dec_places unit_string / _num dec_places poz _rem frac _r portions n i a b neg)
(if (< num 0.0) (setq neg "-")(setq neg ""))
(setq _num (rtos num 2 dec_places) _num (strcat _num "00000000"))
(if (setq poz(vl-string-position (ascii ".") _num)) (setq _rem (substr _num 1 (+ poz 1)) frac (substr _num (+ poz 2)))(setq frac ""))
(setq num (abs num ) _r (rem num 1.0) num (- num _r))
(if (and(> _r 0.5)(eq dec_places 0)) (setq num (+ 1 num)))
(while (> num 0.0)(setq portions (cons (fix (rem num 1000.0)) portions)num (/ (- num (car portions)) 1000.0)))
(setq n (length portions) i 0 a "")
(while (< i n)
(setq b (rtos (nth i portions) 2 0))
(if (and (eq (strlen b)1) (> i 0)) (setq b (strcat "00" b)))
(if (and (eq (strlen b)2) (> i 0)) (setq b (strcat "0" b)))
(if (< i (- n 1))(setq a (strcat a b " ")) (setq a (strcat a b)))
(setq i (+ 1 i))
)
(if (> dec_places 0 )(setq a (strcat a "," (substr frac 1 dec_places))))
(strcat neg a " " unit_string "\U+00B2")
)
Command: (razd 32319.576 2 "m") -> "32 319,58 m²"
Command: (razd 32319.576 0 "m") -> "32 320 m²"
Or try in your code
(vla-setcellformat Area_table crow 1 "%lu2%pr1%ps[, m\U+00B2]%ct8[1.000000000000000E-006]")
Miljenko Hatlak

Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.