Line Angle as callout with degree symbol

Good day everyone,

     The code below lets me add line degrees as a callout however there's still something that I want to improve. First, if the degrees decimal is trailing zero (no value) it should be presented as one decimal only (as seen with "5.0") but if the angle has values it should be presented as 6 decimals (as seen on "3.249...").  I also wanted to add the degree symbol "°" once the text is added. Last thing when I use this there's no preview of the leader, minor problem only. Is there a way I can do it that way? basically the upper image change to the lower image. Thanks in advance

 

 

(defun c:DGT ()
 (setq p1 (getpoint "\\nSelect First Point: "))
 (setq p2 (getpoint "\\nSelect Second Point: "))
 ; Calculate the angle in radians
 (setq ang_radians (angle p1 p2))
 ; Convert radians to degrees
 (setq ang_degrees (* (/ ang_radians pi) 180))
 ; Calculate the complementary angle (90° minus measured angle)
 (setq complementary_angle (- 90 ang_degrees))
 ; Ensure the complementary angle is positive
 (setq complementary_angle (abs complementary_angle))
 ; Calculate the midpoint of p1 and p2
 (setq mid_pt (mapcar '(lambda (a b) (/ (+ a b) 2.0)) p1 p2))
 ; Prompt user to select text location
 (setq text_pos (getpoint "\\nSelect Text Location: "))
 ; Format the angle value
 (setq angle_str (if (= (rem complementary_angle 1) 0)
                     (strcat (rtos complementary_angle 2 2))
                     (strcat (rtos complementary_angle 2 6))))
 ; Remove trailing zeros
 (setq angle_str (vl-string-right-trim "0.0" angle_str))
 ; Create a leader with the complementary angle value
 (command "leader" mid_pt text_pos "" angle_str)
 (princ)
)