以科学计数法将字符串转换为整数

Posted

技术标签:

【中文标题】以科学计数法将字符串转换为整数【英文标题】:string to integer in scientific notation 【发布时间】:2019-05-13 05:57:11 【问题描述】:

将存储科学计数法数字的字符串转换为整数的规范方法是什么?

来自

"1e6"

1000000

至于相反的过程,将整数转换为科学计数法的字符串,我知道我可以使用@sprintf 宏。如果有人知道实现反向过程的确切格式 - 如此小e 并且没有额外的尾随.00 零(如1.00e6)或前导零(如1e08) - 我将不胜感激包括在内是为了完整性。

【问题讨论】:

【参考方案1】:

字符串到整数的转换可以通过这样的浮点数来实现:

julia> Int(parse(Float64, "1e6"))
1000000

如果您知道该号码适合 Int64 或类似这样

julia> BigInt(parse(BigFloat, "1e6"))
1000000

对于更大的数字。

对于反向过程,@sprintf 中的默认值如下:

julia> @sprintf("%.0e", 1_000_000)
"1e+06"

但是,您在e 之后得到+,并且指数中至少显示两位数字(当您进行此类转换时,这两个功能都是跨不同语言的标准)。另请注意,此过程会导致四舍五入,例如:

julia> @sprintf("%.0e", 1_000_001)
"1e+06"

【讨论】:

+0 然后我将使用replace 函数来处理。谢谢 我想推荐它,可能要使用的正确正则表达式是例如replace("1e+01", r"[+]0?"=>"").

以上是关于以科学计数法将字符串转换为整数的主要内容,如果未能解决你的问题,请参考以下文章

如何将一串大数转换为整数?

使用有限的类 C 库将科学计数法字符串中的数字转换为浮点数

SSIS CSV 导入:字符串转换为科学计数法

Pandas / 如何将存储为字符串的科学记数法转换为浮点数?

将混合类型 DF 列中的浮点数转换为字符串使用科学记数法

将具有科学计数法的字符串列表转换为十进制数