|
|
|
|
|
by titzer
406 days ago
|
|
Yep, Virgil only implicitly promotes integers to float when rounding won't change the value. // OK implicit promotions
def x1: i20;
def f1: float = x1;
def x2: i21;
def f2: float = x2;
def x3: i22;
def f3: float = x3;
def x4: i23;
def f4: float = x4;
// compile error!
def x5: i24;
def f5: float = x5; // requires rounding
This also applies to casts, which are dynamically checked. // runtime error if rounding alters value
def x5: i24;
def f5: float = float.!(x5);
|
|