Well, look at it this way:
- You have 19 floats
- Each float may:
- Need to be added (multiply by 1)
- Need to be subtracted (multiply by -1)
- Need to be ignored (multiply by 0)
This means there are 3 to the power 19 different ways to combine these numbers... That's a lot of possible combinations to try, but it can be done I suppose... You'd probably want to write a recursive algorithm to try all these permutations, and see if the rounded total matches the number you specified...
Update: Possible solution code posted below