Category: EtherCAT
It is already a 64-bit float or "double" as everyone calls it except in the ethercat-conf.xml file. Where it is called float.
Linuxcnc switched from 32-bit floats to 64-bit floats somewhere version 2.4 or so.
If this line works for you, then that is the best you can do.
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="poscommand" halType="float" scale="838860.7"/>
This takes a signed integer from Ethercat, obviously the device's encoder position comes as a signed 32-bit integer. This is then converted into a halfloat, which is a double. I think this is what you ask for. All floats in hal are 64-bit doubles.
The conversions to float aren't named very good
"float": ethercat signed 32-bit integer to 64-bit hal float
"float-unsigned": ethercat unsigned 32-bit integer to 64-bit hal float
"float-ieee": ethercat floating point 32-bit REAL to 64-bit hal float
"float-double-ieee": ethercat floating point 64-bit LREAL to 64-bit hal float