Please update the below code with 0.9 multiplication factor for both prefix and suffix alphabets.
Code:
(defun C:9FS (/ cpent elist en ip newtxt pt ss sum sumtxt txt)(princ "\n\t\t>>> Select text to get summ >>>")(if;;select texts/mtexts on screen :(setq ss (ssget '((0 . "*TEXT"))));; if selected then :(progn ;; store the first text entity for using 'em further :(setq cpent (ssname ss 0)) ;; set initial sum to zero : (setq sum 0.) ;; loop trough selected texts/mtexts : (while ;; get the first text in selection : (setq en (ssname ss 0)) ;; get entity list of them : (setq elist (entget en)) ;; get the textstring by key 1 from entity list : (setq txt (cdr (assoc 1 elist))) ;; create output string : (setq sumtxt ;; concatenate strings : (strcat ;; convert digits to string : (rtos ;; add to summ the digital value of text : (setq sum (+ (atof (vl-list->string (vl-remove-if-not '(lambda (x) (member x '(46 48 49 50 51 52 53 54 55 56 57))) (vl-string->list txt)))) sum)) ;; 2 is for metric units (3 for engineering) : 2 ;; set precision by current : (getvar "dimdec"))) ) ;; delete entity from selection set : (ssdel en ss) ) ;; display message in the command line: (princ (strcat "\nSumm=" sumtxt)) (setq pt (getpoint "\nSpecify the new text location: ")) ;; get the insertion point of stored entity : (setq ip (cdr (assoc 10 (entget cpent)))) ;; copy text entity to the new destination point : (command "_copy" cpent "" ip pt) ;; get the last created entity : (setq newtxt (entlast)) ;; get entity list of them : (setq elist (entget newtxt)) ;; modify entity list with new text string : (entmod (subst (cons 1 sumtxt)(assoc 1 elist) elist)) ;; update changes : (entupd newtxt) ))(princ) )(princ "\nStart command with STX...")(princ)