13648893846 发表于 2017-11-7 09:27:57

字符串转实数

求助请教大神:
字符串K113+154.489——实数113154.489互转函数该如何写

xyp1964 发表于 2017-11-7 18:07:13

;; xyp-Real2K 实数转里程 (xyp-Real2K 3012.3456)→"k3+012.346"
(defun xyp-Real2K (real)
(strcat "k"
          (itoa (fix (/ real 1000)))
          "+"
          (substr (rtos (+ 1000 (rem real 1000)) 2 3) 2)
)
)

xyp1964 发表于 2017-11-7 18:08:13

xyp-K2Real 会有点复杂

kozmosovia 发表于 2017-11-7 18:17:28

不复杂,一条语句(atof (vl-string-subst "" "K" (vl-string-subst "" "+" str)))

13648893846 发表于 2017-11-9 15:35:29

多谢两位大神

pengfei2010 发表于 2017-11-10 09:09:51

回帖是一种美德!感谢楼主的无私分享 谢谢

mahuan1279 发表于 2017-11-11 11:24:43

本帖最后由 mahuan1279 于 2017-11-13 16:42 编辑

(vl-list->string (vl-remove nil (mapcar '(lambda (x) (if (= 0 (* (- x 75) (- x 43))) nil x)) (vl-string->list "K113+154.489"))))

yxp 发表于 2017-11-11 11:51:06

本帖最后由 yxp 于 2017-11-11 12:02 编辑

(read (vl-string-subst "" "+" (substr "K113+154.489" 2)))

mahuan1279 发表于 2017-11-13 17:04:46

yxp 发表于 2017-11-11 11:51
(read (vl-string-subst "" "+" (substr "K113+154.489" 2)))

结果没有保留小数点后面有效数字。
页: [1]
查看完整版本: 字符串转实数