我刚刚在编程语言ruby中发现了一个奇怪的问题,这不是一个大问题,但我只是无法理解它为什么会发生.如果有人知道我的问题的问题,我会感兴趣.
在红宝石中你可以写,0或者00,无关紧要,它会得到相同的结果.
如果你运行0 === 00你也true意味着两个输入是完全相同的.
0.0也等于0,所以逻辑上00.0也应该相等,0.0但问题是,如果你试图使用数字,00.0那么你只会得到一个错误.如果您运行例如:
a = 00.0
Run Code Online (Sandbox Code Playgroud)
你收到这个错误:
语法错误,意外的tINTEGER
当然我知道这是一个小问题,但正如我所说,我想理解为什么计算机不对待00.0它0.0?
问题是,当 ruby 解析时发现超过两位数字以字符 0 开头的数字时,它会将其解析为八进制整数。因此,当它解析00时,它是八进制的0,与十进制的0相同。但如果它找到一个 . 那么它是一个无效的整数,这就是它显示的错误。
| 归档时间: |
|
| 查看次数: |
1639 次 |
| 最近记录: |