Ruby/Rails: 如何以科学计数法显示数字?
Ruby/Rails: How can I display a number in scientific notation?
我认为这会很简单,但我在任何地方都找不到有关它的任何信息。假设用户输入 123456。我想用科学记数法显示它。所以这将是 1.23456 * 10^5。我认为 ruby 或 rails 会有辅助方法,例如 scientific_notation(123456),但我找不到任何东西。这可能吗?
更进一步,如果用户输入科学记数法,如何处理数字?例如,他们输入 1.23456x10^6 - rails 对此进行解析并将 123456 存储在数据库中。
我意识到第二部分是一个远景。
要将数字转换为 e
的幂,我们可以使用 %
运算符。
说 x = 123456
然后
"%e" %x
=> 1.234560e+05
要将 Integer、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
通常在 Integer、Bignum 和 .to_f 上使用
=17=]BigDecimal 如果数字很长(长度 > 15),则将数字转换为科学计数法。
我认为这会很简单,但我在任何地方都找不到有关它的任何信息。假设用户输入 123456。我想用科学记数法显示它。所以这将是 1.23456 * 10^5。我认为 ruby 或 rails 会有辅助方法,例如 scientific_notation(123456),但我找不到任何东西。这可能吗?
更进一步,如果用户输入科学记数法,如何处理数字?例如,他们输入 1.23456x10^6 - rails 对此进行解析并将 123456 存储在数据库中。
我意识到第二部分是一个远景。
要将数字转换为 e
的幂,我们可以使用 %
运算符。
说 x = 123456
然后
"%e" %x
=> 1.234560e+05
要将 Integer、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
通常在 Integer、Bignum 和 .to_f 上使用
=17=]BigDecimal 如果数字很长(长度 > 15),则将数字转换为科学计数法。