ruby - 如何将科学计数法字符串转换为十进制计数法?

标签 ruby regex

我想查找并将csv文件中的所有科学记数法字符串转换为十进制记数法,例如:

1.0e-05 to 0.00001

我如何在 ruby​​ 中做到这一点?

最佳答案

只需使用字符串转换。必要的强制 float 将自动完成:

"%f" % "1.0e-05"
=> "0.000010"

# Which, behind the scenes is the same as:
"%f" % "1.0e-05".to_f
=> "0.000010"

根据需要进行调整以获得或多或少的准确性。例如:

"%.5f" % "1.0e-05"
=> "0.00001"

如果您想要真正的花哨并在末尾砍掉不必要的零,这是一种方法。 (希望有人会提出更优雅的建议;我想不出任何东西):

("%.20f" % "1.0e-05").sub(/\.?0*$/, "")
=> "0.00001"

关于ruby - 如何将科学计数法字符串转换为十进制计数法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8586357/

相关文章:

Ruby On Rails 模型、 View 和 Controller 之间的关系

ruby - 了解 Ruby 类与实例方法

javascript - 正则表达式删除空格

python - pyparsing 开始和结束字符串相同

java - 如何像 Java 一样从 Ruby 获取本地时区名称?

ruby-on-rails - 如何使用 YARD 记录 Rake 任务?

java - java中将字符串分成句子(在指定组的符号出现后)

c# - .NET 正则表达式 - 如何查找具有特殊字符的术语 "surrounded"

ruby - 如何避免 Mechanize 的间隔

python - 如何对给定后缀的文件执行不区分大小写的搜索?