首页 > 解决方案 > 如何将基数中的整数转换为字符串

问题描述

有时我有像这样的整数021011.

如果我尝试将它们转换为字符串,结果将是:

p 021.to_s # "17" instead "021"
p 011.to_s # "9" instead "011"

为什么会发生这种情况,如何将整数转换为字符串?

标签: ruby

解决方案


带有前导零的数字文字被认为是八进制(以 8 为基数)数字。

to_s方法将数字转换为默认十进制(以 10 为底)。

  • 八进制 21 是十进制 17
  • 八进制 11 是十进制 9

对于预期结果,删除前导零。


推荐阅读