【发布时间】:2019-05-13 05:57:11
【问题描述】:
将存储科学计数法数字的字符串转换为整数的规范方法是什么?
来自
"1e6"
到
1000000
至于相反的过程,将整数转换为科学计数法的字符串,我知道我可以使用@sprintf 宏。如果有人知道实现反向过程的确切格式 - 如此小e 并且没有额外的尾随.00 零(如1.00e6)或前导零(如1e08) - 我将不胜感激包括在内是为了完整性。
【问题讨论】:
将存储科学计数法数字的字符串转换为整数的规范方法是什么?
"1e6"
1000000
至于相反的过程,将整数转换为科学计数法的字符串,我知道我可以使用@sprintf 宏。如果有人知道实现反向过程的确切格式 - 如此小e 并且没有额外的尾随.00 零(如1.00e6)或前导零(如1e08) - 我将不胜感激包括在内是为了完整性。
【问题讨论】:
字符串到整数的转换可以通过这样的浮点数来实现:
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?"=>"").