Number "implicit cast"

That explains “constant 100.1 truncated to integer”, for sure, but it does not explain why a literal “100.0” is considered to be a literal “100” (without quotes).

On the same page one can find explanation of floating-point literals, where “0.” is shown as an example of floating-point literal. (Note: I have tested the code with “100.” and it acts just like with “100.0”)