Julia 如果该值为正值,则打印一个额外的空格
我正在尝试获得程序的直观清晰的输出:Julia 如果该值为正值,则打印一个额外的空格,julia,Julia,我正在尝试获得程序的直观清晰的输出: a = -1234 b = 1234 @printf "a = %s%1.2e" "" a @printf "b = %s%1.2e" " " b 其中: a = 1.23e+03 b = -1.23e+03 (要点是为正数添加一个额外的空格) 现在我想把它自动化。我试着写一个函数: function negspace(x::Number) if x < 0 return "", x else
a = -1234
b = 1234
@printf "a = %s%1.2e" "" a
@printf "b = %s%1.2e" " " b
其中:
a = 1.23e+03
b = -1.23e+03
(要点是为正数添加一个额外的空格)
现在我想把它自动化。我试着写一个函数:
function negspace(x::Number)
if x < 0
return "", x
else
return " ", x
end
end
找到了一种方法:
#!/usr/bin/env julia
function signspace(x::Number)
if x > 0
return @sprintf(" %1.2e", x)
else
return @sprintf( "%1.2e", x)
end
end
a = -1234
b = 1234
println("a = ", signspace(a))
println("b = ", signspace(b))
但我不确定它是否是最佳的。更简单的方法是直接使用,在
%
后面加一个空格:
julia> @sprintf("a = % 1.2e", -1234)
"a = -1.23e+03"
julia> @sprintf("b = % 1.2e", 1234)
"b = 1.23e+03"
julia> @sprintf("a = % 1.2e", -1234)
"a = -1.23e+03"
julia> @sprintf("b = % 1.2e", 1234)
"b = 1.23e+03"