I mean unambiguous for the compiler. It can’t make the program use a wrong type, so I don’t think it can lead to a mistake.
Ambiguity for human reader is a different thing, and in your example indeed it’s not immediately obvious to a human reader what type 1 has, but neither would 1.0, because it’s actually f32 and not f64.
To me requiring .0 on floating point type literals is akin to requiring explicit + on unsigned types just so you know right there that it’s a u type, and not i type.
It’s allowed to use 1 where you don’t immediately see if its actual type is i8 or usize or anything between, but you can write 1u8 if you want to make it obvious. And I think similarly you should be able to use 0 in f32/f64 context, but can write 1.0 or 1f32 if you feel this context needs to be more explicit.