using CSV
using DataFrames
rm("tmp.csv",force=true)
df=DataFrame([Float64 for k in 1:1],[Symbol("ps_prev_$k") for k in 1:1],0);
push!(df,1000.0)
CSV.write("tmp.csv",df,delim=';', append=true, writeheader=false);

on JuliaBox, the file tmp.csv contains 1000.0 which is what I want.

Nevertheless, on my Linux distribution, the file tmp.csv contains 1e3 which is NOT what I would like for this csv output. Before the updating of the CSV and DataFrames packages, the behaviour was as on JuliaBox.

Is-it due to the new version of the CSV package ? If it is the case, could you tell me how to recover 1000.0 instead of 1e3 in the tmp.csv file by using the previous code ? Thanks very much !

NB:

The version of the CSV package is:
CSV v0.4.3 on JuliaBox ;
CSV v0.5.9 on my Linux distribution.

The version of the DataFrames package is:
DataFranes v0.17.1 on JuliaBox ;
DataFrames v0.19.0 on my Linux distribution.

This code comes from a more complexe code. This part of the code is OK.

The goal here is just to put the float 1000.0 in the DataFrame df. My problem is just with the CSV output and thus with the new CSV.write function (because of the updating of the CSV package ?), not with the DataFrame in my opinion.

Thanks for this infoâ€¦ Could you tell me how I can come back to CSV v0.4.3 knowing that I have updated to CSV v0.5.9 ?

Could you also tell me how we can block an updating to avoid some regression as much as we can (ie before having validated a new package with non-regression tests) ?

I found this basic solution for my problem (but not really â€śsmartâ€ť):

using CSV
using DataFrames
rm("tmp2.csv",force=true)
df2=DataFrame([String for k in 1:1],[Symbol("ps_prev_$k") for k in 1:1],0);
x=1000.0;
pop=[string(x)]
push!(df2,pop)
CSV.write("tmp2.csv",df2,delim=';', append=true, writeheader=false);

This also works for the case indicated in CSV ruins scientific notation (identical behaviour and result OK by changing the value of x above)