In general, the sum of rounded numbers (e.g., using the
`base::round`

function) is not the same as their rounded sum.
This solution applies the following algorithm

Round down to the specified number of decimal places

Order numbers by their remainder values

Increment the specified decimal place of values with ‘k’ largest remainders,
where ‘k’ is the number of values that must be incremented to preserve their rounded sum

`round_preserve_sum(x, digits = 0)`

## Arguments

- x
vector to sum

- digits
number of decimals for rounding

## Examples

```
sum(c(0.333, 0.333, 0.334))
#> [1] 1
round(c(0.333, 0.333, 0.334), 2)
#> [1] 0.33 0.33 0.33
sum(round(c(0.333, 0.333, 0.334), 2))
#> [1] 0.99
round_preserve_sum(c(0.333, 0.333, 0.334), 2)
#> [1] 0.33 0.33 0.34
sum(round_preserve_sum(c(0.333, 0.333, 0.334), 2))
#> [1] 1
```