mojira.dev
MC-312523

/compute float clamps out-of-range values instead of reporting an invalid value

This also happens in 26.3.

Steps to Reproduce:

  1. Run: /compute default float {type:"constant",value:-1e30}

Observed Results:
Number provider returned value -1.0E30 (rounded to -2147483648)

Expected Results:
Number provider returned invalid value, like integer mode does when a result is out of range.

Code analysis:
ComputeCommand#computeAsFloat only rejects values that aren't finite, then uses Mth.floor(original * scale), whose int
cast clamps to the integer limits. The command's return value used by execute store also becomes Integer.MIN_VALUE or
MAX_VALUE.

Comments 0

No comments.

SamuelTheCheesee

(Unassigned)

Confirmed

26.3, 26.4 Snapshot 3

Retrieved