gpt4 book ai didi

common-lisp - 左对齐零填充

转载 作者:行者123 更新时间:2023-12-04 22:30:48 24 4
gpt4 key购买 nike

有一个 format指令为零填充数字。

cl-user> (format nil "~12,'0d" 27)
"000000000027"

并且在填充字符串时有一个类似的指令来左对齐字符串
cl-user> (format nil "~12@<~d~>" 27)
"27 "

有没有办法做到这两点?那是:
cl-user> (format nil "~12,something,d" 27)
"270000000000"

幼稚的 "~12,'0@<~d~>"在这里似乎没有做我想做的事。
cl-user> (format nil "~12,'0@<~d~>" 27)
"27 "

最佳答案

你已经接近最后一个例子了,但你需要更多的逗号,因为 tilde less-than需要四个参数,pad char 是第四个参数,但您将它作为第二个参数传递。只需将其作为第四个传递:

CL-USER> (format nil "~12,,,'0@<~d~>" 27)
"270000000000"

顺便说一句,它是 pointed out in the comments正确的填充会更改看起来没有用的操作的值。我会说它可以是一个有用的操作。这可能取决于这些是整数还是字符串,其中值恰好是数字字符。我见过维护系统,其中升级改变了字段宽度,迁移旧记录的过程是用 0 正确填充。正确的填充正是因为它改变了值。 000027(六个字符)可以写成 27,这不是六个字符宽,000027 也可能被意外读取(可能是机器,当程序员不小心时)作为八进制。另一方面,270000 必须是六位数,不会是八进制,因为它不是以 0 开头

关于common-lisp - 左对齐零填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27003670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com