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

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

来自

"1e6"

1000000

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

【问题讨论】:

    标签: julia scientific-notation


    【解决方案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?"=>"").
    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 2014-07-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多