Double is more precise than float. The damage for decimal points will not be fully accurate. For an example, applying 3.14 damage is 3.139999866 or 3.140000105, this makes the /data get entity @s Health show up 16.860001 (16.86) for applying 3.14 points of damage, and the second apply is another...