我正在努力获得我的程序的视觉清晰输出:
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
并使用
打印a = -1234
b = 1234
@printf "a = %s%1.2e" negspace( a )
@printf "b = %s%1.2e" negspace( b )
答案 0 :(得分:4)
更简单的方法是使用printf format flag直接在%
后面加一个空格来执行此操作:
julia> @sprintf("a = % 1.2e", -1234)
"a = -1.23e+03"
julia> @sprintf("b = % 1.2e", 1234)
"b = 1.23e+03"
答案 1 :(得分:0)
找到方法:
#!/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))
但我不确定它是否是最佳的。