Sto scherzando con LLVM e sto guardando quello che servirebbe per creare un altro linguaggio strongmente tipizzato, e ora che sono intorno alla sintassi, ho notato che sembra essere un vero problema lingua digitata per avvisare le persone che le loro costanti reali non rientrano in una float
:
// both in Java and C#
float foo = 3.2;
// error: implicitly truncating a double into a float
// or something along these lines
Perché non funziona in Java e C #? So che è facile aggiungere f
dopo 3.2
, ma sta davvero facendo qualcosa di utile? Devo davvero essere che consapevole del fatto che sto usando reals a precisione singola invece di realizzazioni a doppia precisione? Forse mi manca qualcosa (che, in fondo, è il motivo per cui lo sto chiedendo).
Tieni presente che float foo = [const]
non è la stessa cosa di float foo = [double variable]
, dove il cast mi sembra normale.