提问人:Žarko Ivković 提问时间:10/31/2023 更新时间:11/9/2023 访问量:78
为什么 Julia 不能用 d 而不是 e 解析科学记数法中的函数?
Why can't Julia parse functions parse numbers in scientific notation with d instead of e?
问:
我正在编写一个程序,我需要从文件中解析以科学记数法(如 0.00812216d0)编写的数字。事实证明,Julia parse(Type,str) 无法解析这些数字,因为 'd'。
如果我将“d”换成“e”,效果很好。但是,到处写替换函数是非常不切实际的。我不能只对整个文本文件执行此操作,因为它会导致一些不需要的更改。有什么解决办法吗?
答:
0赞
Bill
11/9/2023
#1
尝试(如果你想要双精度,即 64 位浮点数):
dparse(s) = parse(Float64, replace(s, 'd' => 'e'))
正如 BallpontBen 在评论中所说。对于 BigFloat,将上面的 'Float64' 替换为 BigFloat。如果在数据解析过程中出现错误,请考虑
dparse(s) = something(tryparse(Float64, replace(s, 'd' => 's')), missing)
这将使您缺少解析错误,而不是抛出错误。
评论
parse(Type, replace(str, 'd' => 'e'))
.为什么这不切实际?什么无处不在?重复工作应该进入一个函数。d