строка в целое число в научной записи - PullRequest
2 голосов
/ 13 мая 2019

Каков канонический способ преобразования строки, хранящей число в научной записи, в целое число?

от

"1e6"

до

1000000

Что касается обратного процесса, преобразование целого числа в строку в научной нотации, которую я понимаю, я могу использовать @sprintfмакро.Если кто-то знает точный формат для достижения в точности обратного процесса - такой маленький e и без дополнительных конечных .00 нулей (например, 1.00e6) или начальных нулей (например, 1e08) - я буду признателен, если он будетвключены для полноты.

1 Ответ

1 голос
/ 13 мая 2019

Преобразование из строки в целое число может быть достигнуто с помощью таких чисел с плавающей запятой:

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"
...