红宝石中的数字1e18是什么意思

时间:2018-11-01 06:33:50

标签: ruby numbers

我正在尝试用一个变量替换1e18中的数字18,但是我尝试的所有操作都给出了错误。也许,如果我知道它的作用,我就可以自己写不同的公式。

字母3对数字有什么作用。如何将其应用于名为X的变量?

e与**有何区别

2 个答案:

答案 0 :(得分:4)

  

红宝石中的数字1e18是什么意思?

1e18(或1E18)是使用number literalE-notation。 Ruby将此数字解释为值为1×10 18 (即1,000,000,000,000,000,000)的浮点数。

  

我正在尝试将1e18中的数字18替换为变量

1e18等效于:

1.0 * 10 ** 18
#=> 1.0e+18

因此您可以写:

x = 18

1.0 * 10 ** x
#=> 1.0e+18

或简单地:

10.0 ** x
#=> 1.0e+18
  

e**有何不同

结果是相同的,但是1e18(是文字)是由解析器求值的,而**是方法调用。

答案 1 :(得分:1)

正如萨米(Sami)的评论所提到的:

  

1e18是一种科学符号,意思是1 * 10^18

Read more about the number here

如何在Ruby中使用此类数字?

这是一个简单的例子:

require 'bigdecimal'
a = BigDecimal.new "1e18"
#=> #<BigDecimal:2cf0880,'0.1E19',9(18)>

a.to_f
#=> 1.0e+18

a.to_s
#=> "0.1E19"  # notice 0.1E19 and not 1.0E19

"%f" % a
#=> "1000000000000000000.000000"

("%f" % a).to_i
#=> 1000000000000000000