在MatLab / Octave中,您可以发送命令“format long g”并在REPL中具有默认数字输出,格式如下:
八度> 95000 / 0.05
ans = 1900000
是否有可能在朱莉娅中获得类似的行为?目前与朱莉娅
版本0.3.0-prerelease + 3930(2014-06-28 17:54 UTC)
提交bdbab62 *(6天大师)
x86_64的-红帽Linux的
我得到以下数字格式。
朱莉娅> 95000 / 0.05
1.9e6
答案 0 :(得分:4)
您可以使用 @printf 宏进行格式化。它的行为类似于C printf,但与C的printf不同,类型不需要同意,而是根据需要进行转换。例如
julia> @printf("Integer Format: %d",95000/0.05);
Integer Format: 1900000
julia> @printf("As a String: %s",95000/0.05);
As a String: 1.9e6
julia> @printf("As a float with column sized larger than needed:%11.2f",95000/0.05);
As a float with column sized larger than needed: 1900000.00
可以使用 @printf 作为REPL中的默认机制,因为REPL在Base.REPL中的Julia中实现,特别是以下函数:
function display(d::REPLDisplay, ::MIME"text/plain", x)
io = outstream(d.repl)
write(io, answer_color(d.repl))
writemime(io, MIME("text/plain"), x)
println(io)
end
要修改显示 Float64 的方式,您只需要为 Float64 重新定义 writemime 强>
julia> 95000/0.05
1.9e6
julia> Base.Multimedia.writemime(stream,::MIME"text/plain",x::Float64)=@printf("%1.2f",x)
writemime (generic function with 13 methods)
julia> 95000/0.05
1900000.00