brief code analysis: FloatTag.getAsLong does not call floor in the conversion, as opposed to getAsByte, getAsShort, getAsInt, and DoubleTag.getAsLong which all do. that is the cause of the inconsistent behavior
FloatTag.getAsLong
floor
getAsByte
getAsShort
getAsInt
DoubleTag.getAsLong
brief code analysis:
FloatTag.getAsLong
does not callfloor
in the conversion, as opposed togetAsByte
,getAsShort
,getAsInt
, andDoubleTag.getAsLong
which all do. that is the cause of the inconsistent behavior