Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请解释Ruby如何解释数字_Ruby - Fatal编程技术网

请解释Ruby如何解释数字

请解释Ruby如何解释数字,ruby,Ruby,当将以下数字输入irb时,我得到以下结果: 50 #=> 50 050 #=> 40 030 #=> 24 005 #=> 5 为什么050等于40而不是50,030==30,005==5?发生了什么事 八进制数。不仅仅是在Ruby中,大多数编程语言都认为当一个数字以零开头时,它是以8为基数的 50=5*10 050=5*8 以0开头的数字被解释为八进制数 010 => 8 020 => 16 0777 => 511 去除前导零的最佳方法是什么?创

当将以下数字输入irb时,我得到以下结果:

50 #=> 50
050 #=> 40
030 #=> 24
005 #=> 5

为什么
050
等于
40
而不是
50
030==30
005==5
?发生了什么事

八进制数。不仅仅是在Ruby中,大多数编程语言都认为当一个数字以零开头时,它是以8为基数的

  • 50=5*10
  • 050=5*8

以0开头的数字被解释为八进制数

010 => 8
020 => 16
0777 => 511

去除前导零的最佳方法是什么?创建一个将八进制转换为十进制的方法是最简单的方法吗?你可以明确你的要求并提出另一个问题。i、 e.这些数字是如何输入的?从形式?来自文件?我知道如果这是来自文件或表单,我可以简单地将字符串转换为整数,正确地删除前导零。仅仅是出于好奇,如果这些输入是Fixnums类的,那么?(不确定是否正确…)与字符串相比,删除前导零并将其解释为十进制而不是八进制的最佳方法是什么?我对编程相当陌生。@user2684075这些数字在解析器级别进行转换,一旦有了Fixnum,前导的
0
就消失了。