前面有符号的零填充小数格式字符串?
Format string for zero padding decimal with sign in front?
是否有格式字符串,可以用零填充小数点前面的符号?
(format nil ? 5) => "+0005"
(format nil ? -5) => "-0005"
我找到的最接近的是
(format nil "~4,'0@d" 5) => "00+5"
(format nil "~4,'0@d" -5) => "00-5"
这是自定义打印机功能的草稿:
(defun signed-padding (stream data colonp atsignp &optional (padding 0))
(declare (ignore colonp atsignp))
(format stream "~:[+~;-~]~v,'0d" (minusp data) padding (abs data)))
...还有一个例子:
(values
(format nil "~v/signed-padding/" 20 330)
(format nil "~5/signed-padding/" -4))
"+00000000000000000330"
"-00004"
您或许可以添加更多检查和选项。
是否有格式字符串,可以用零填充小数点前面的符号?
(format nil ? 5) => "+0005"
(format nil ? -5) => "-0005"
我找到的最接近的是
(format nil "~4,'0@d" 5) => "00+5"
(format nil "~4,'0@d" -5) => "00-5"
这是自定义打印机功能的草稿:
(defun signed-padding (stream data colonp atsignp &optional (padding 0))
(declare (ignore colonp atsignp))
(format stream "~:[+~;-~]~v,'0d" (minusp data) padding (abs data)))
...还有一个例子:
(values
(format nil "~v/signed-padding/" 20 330)
(format nil "~5/signed-padding/" -4))
"+00000000000000000330"
"-00004"
您或许可以添加更多检查和选项。