## fimath for Rounding and Overflow Modes

Only rounding methods and overflow actions set prior to an operation with `fi` objects affect the outcome of those operations. Once you create a `fi` object in MATLAB®, changing its rounding or overflow settings does not affect its value. For example, consider the `fi` objects `a` and `b`:

```p = fipref('NumberDisplay', 'RealWorldValue',... 'NumericTypeDisplay', 'none', 'FimathDisplay', 'none'); T = numerictype('WordLength',8,'FractionLength',7); F = fimath('RoundingMethod','Floor','OverflowAction','Wrap'); a = fi(1,T,F)```
```a = -1```
`b = fi(1,T)`
```b = 0.9922```

Because you create `a` with a `fimath` object `F` that has `OverflowAction` set to `Wrap`, the value of `a` wraps to -1. Conversely, because you create `b` with the default `OverflowAction` value of `Saturate`, its value saturates to 0.9922.

Now, assign the `fimath` object `F` to `b`:

`b.fimath = F`
```b = 0.9922```

Because the assignment operation and corresponding overflow and saturation happened when you created `b`, its value does not change when you assign it the new `fimath` object `F`.

Note

`fi` objects with no local fimath and created from a floating-point value always get constructed with a `RoundingMethod` of `Nearest` and an `OverflowAction` of `Saturate`. To construct `fi` objects with different `RoundingMethod` and `OverflowAction` properties, specify the desired `RoundingMethod` and `OverflowAction` properties in the `fi` constructor.

For more information about the `fimath` object and its properties, see fimath Object Properties