为什么 Julia 解析函数不能用 d 而不是 e 来解析科学记数法中的数字?

问题描述 投票:0回答:1

我正在编写一个程序,需要从文件中解析以科学计数法(如 0.00812216d0)编写的数字。事实证明,由于 'd',Julia parse(Type,str) 无法解析这些数字。

如果我用“e”交换“d”,效果很好。然而,到处都写替换函数是非常不切实际的。我不能只对整个文本文件执行此操作,因为这会导致一些不需要的更改。有什么解决办法吗?

string parsing julia numbers scientific-notation
1个回答
0
投票

尝试(如果你想要双精度,即64位浮点数):

dparse(s) = parse(Float64, replace(s, 'd' => 'e'))

正如 BallpontBen 在评论中所说。对于 BigFloat,将“Float64”替换为上面的 BigFloat。如果您在数据解析中遇到错误,请考虑

dparse(s) = something(tryparse(Float64, replace(s, 'd' => 's')), missing)

这会让你缺少解析错误而不是抛出错误。

© www.soinside.com 2019 - 2024. All rights reserved.