JuliaMath / DecFP.jl

Julia IEEE decimal floating-point via the Intel decimal-float library
Other
57 stars 22 forks source link

printf is converting to `Float64` #178

Open stevengj opened 8 months ago

stevengj commented 8 months ago

It looks like the @printf macro is broken — it seems to be converting values to Float64 before printing (reported on discourse):

julia> using DecFP, Printf

julia> x = rand(Dec128)
0.6498353664629435612857337361220566

julia> println(x)
0.6498353664629435612857337361220566

julia> @printf("%.36f", x)
0.649835366462943597731793943239608780
julia> 

julia> @printf("%.36f\n", Float64(x)) # matches @printf("%.36f", x) !!
0.649835366462943597731793943239608780

@jmkuhn, has @printf bitrotted? I thought it used to be working (after #48).

jmkuhn commented 6 months ago

Yes, this worked correctly through Julia 1.5.x. It broke in Julia 1.6.0 with https://github.com/JuliaLang/julia/pull/32859.