When specifying literals of type double, you don’t need a suffix. All floating point literals are by default assumed to be of type double.
1
| double d1 = 4.2; // This works |
But when specifying float literals, you need an explicit cast, or the f suffix.
1
2
3
4
5
6
| // 4.2 literal is inferred as double float f = 4.2; // Compilation error: Literal of type double cannot be implicitly converted to type 'float' // Two ways to fix this float f2 = ( float )4.2; // double explicitly cast to float float f3 = 4.2f; // 'f' indicates that literal is float |