如果值为正,则打印额外的 space
Print an extra space if the value is positive
我正在尝试让我的程序输出清晰可见:
a = -1234
b = 1234
@printf "a = %s%1.2e" "" a
@printf "b = %s%1.2e" " " b
给出:
a = 1.23e+03
b = -1.23e+03
(重点是正数多加一个space)
现在我想自动化它。我试着写了一个函数:
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 )
找到方法:
#!/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))
但我不确定它是否最佳。
更简单的是使用 printf format flag 直接在 %
:
后面加上 space
julia> @sprintf("a = % 1.2e", -1234)
"a = -1.23e+03"
julia> @sprintf("b = % 1.2e", 1234)
"b = 1.23e+03"
我正在尝试让我的程序输出清晰可见:
a = -1234
b = 1234
@printf "a = %s%1.2e" "" a
@printf "b = %s%1.2e" " " b
给出:
a = 1.23e+03
b = -1.23e+03
(重点是正数多加一个space)
现在我想自动化它。我试着写了一个函数:
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 )
找到方法:
#!/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))
但我不确定它是否最佳。
更简单的是使用 printf format flag 直接在 %
:
julia> @sprintf("a = % 1.2e", -1234)
"a = -1.23e+03"
julia> @sprintf("b = % 1.2e", 1234)
"b = 1.23e+03"