Je to jen banální příklad implicitní konverze int->long, způsobující nepříjemnou chybu, která se navíc projeví pouze v závislosti na konkrétních hodnotách proměnných, a to až za běhu programu, nikoliv při kompilaci.
Chyba bude i v tomto případě (int->float) úplně stejná:
int b = 1000;
float a = b*b*b*b;
(a má nyní hodnotu –7.2737997E8)
Tím chci říct jen to, že každý kód je potřeba testovat, a jakékoliv spoléhání na kontroly překladače (‚je to přece silně typované, tak je to bezpečné‘) se může vymstít.