The value must be zero or positive (>= 0.0); rejects NaN.
>= 0.0
Returns null if value is valid, or a human-readable reason string if invalid.
null