【问题标题】:Invalid octal digit error [duplicate]无效的八进制数字错误[重复]
【发布时间】:2012-06-25 23:59:00
【问题描述】:

Ruby 中的无效八进制数字错误,我该如何绕过它?我有一个号码 0962833,我需要将其发送到 API,但我无法发送它,因为我收到了这个无效的八进制数字错误。

我需要一个解决方法,而不是把那个数字变成一个字符串,零不能被删除,这是必须的。

【问题讨论】:

  • 前导0 表示该值将被解释为八进制表示。为什么不能删除?
  • 你确定0962833 真的是一个数字而不是一个字符串,'0962833',恰好是由数字组成的吗?例如,邮政编码通常看起来像数字,但它们不是,它们是字符串。

标签: ruby api octal


【解决方案1】:

八进制数字使用数字 0 到 7。可能错误可能是数字 9 和数字中的数字 8。 如果您想传递数字“962833”,请先尝试使用在线转换器将其转换为正确的八进制数。然后添加前导 '0' 并将其传递给您的函数。

【讨论】:

  • 无需在线转换器:"0962833".to_i(10).to_s(8) => "3530421" :-)
  • 你们是对的,这不是数字问题,因为我将其更改为字符串,问题出在我的 curl 命令上。谢谢。
【解决方案2】:

0962833是八进制数,因为前导零,所以不能有大于7的数字。如果需要前导零,为什么不能把它变成字符串?前导零没有mathematical significance,那么为什么要有办法用数字类型来表示它们呢?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2013-02-18
    • 2012-12-22
    • 2011-08-21
    • 1970-01-01
    • 2015-09-07
    • 2019-07-20
    相关资源
    最近更新 更多