It looks like you are looking for integer solutions such that you spend less than or equal to your budget.
I would look at this problem from starting with one "fruit" and increasing the number of fruits. So if you just had apples, you could buy 7 (7,0,0). For the other variables, since their prices don't evenly divide 3.5, I would look at what is the largest number you can purchase with your budget. We can constrain your problem to look only at values in between (7,0,0), (0,17.5,0) and (0,0,3.94). Oranges are the cheapest product, so lets start with the most oranges and adjust down. I will use the notation (a_1,a_2,a_3|total cost). If you are interested in only triplets that combine to the exact total budget, the problem is much easier since in your example .89 has a hundredths digit and you would have to buy a multiple of ten in order to get to your exact budget.
For exact budget we have (7,0,0), (5,5,0), (3,10,0), (1,15,0) as the only solutions, since .5 divides 3.5 and lcm(.2,.5)=1 means that we must change how much product we buy in 1 dollar increments (1 dollar less of apples and 1 dollar more of oranges.
To solve for any combination that costs less than your budget, start with (0,17,0|3.4) and decrease the number of oranges bought. Then look for all combinations that satisfy your budget (0,17,0|3.4),(0,16,0|3.2),(1,15,0|3.5),(1,14,0|3.3), (1,13,0|3.1), (0,13,1|3.49) and so on.