我认为这很简单,但我无法在任何地方找到有关它的任何信息。让我们说用户输入123456.我想用科学记数法显示它。所以这将是1.23456 * 10 ^ 5。我认为ruby或rails会有一个辅助方法,比如scientific_notation(123456),但我找不到任何东西。这可能吗?
更进一步,如果用户输入科学记数法,那么处理数字怎么样?例如,他们输入1.23456x10 ^ 6 - rails解析它并将123456存储在数据库中。
我意识到第二部分是远景。
答案 0 :(得分:6)
要将数字转换为%
的幂,我们可以使用x = 123456
运算符。
说"%e" %x
=> 1.234560e+05
然后
Random gen = new Random();
bool result = gen.Next(100) < 50 ? true : false;
答案 1 :(得分:1)
要将整数, Bignum 或BigDecimal转换为科学数字表示法,您可以使用 .to_f 方法。
以下是一些例子:
# Generate a long number
num = BigDecimal.new('123e+100')
#=> #<BigDecimal:1bca380,'0.123E1003',9(18)>
num.to_s
#=> "123000000000000....
num.to_f
#=> 1.23e+102
# Convert BigDecimal to integer
int = num.to_i
#=> 123000000000000....
int.class
#=> Bignum
int.to_f
#=> 1.23e+102
通常在整数上使用 .to_f , Bignum 和 BigDecimal 会以科学记数法转换数字数字很长(长度> 15)。