Thanks for adding another question with additional clarification.
Assuming the interface has stayed the same since May-July 2017 for Bittrex, there won't be a reliable way to accomplish this. This also occurs in other exchanges.
If i submit a trade and want to pay .002 BTC per 1 BCH, that's the upper LIMIT. You can't "force" it to buy BCH that high. It just won't buy anything at a cost greater than .002. In any normal scenario nor would anyone want to pay more than necessary to obtain the desired amount. Most systems work on a "this is what i want to buy, this is how much i'll pay for it". With an order book, if the system can buy it for you cheaper, it will. You are simply setting your upper limit. Thus it's called a "limit order". Limit trading is the most popular because the system will not pay more than what you've specified in reaching the amount of BCH you've specified. Going back to the example, if the system found some BCH for you at a price of .0019, it'll sell it to you for that price.
In every system i've used that has limit orders, there is always left over. It's almost impossible to get a 1:1 ratio. I have benefited greatly from sudden fall's in market price on big purchases because my orders were completing for far less. The same for the sell side. In a sudden shift up in price, i found myself getting more for my sales because people were paying more.
This does have an unintended consequence. You'll have change. Sometimes the change is so small it won't even display. I have about .. 15 currencies all showing zero in Kraken, but actually have a tiny fraction remaining because of this very reason. Can't create a sell order for such a small quantity. Not willing to pay the withdraw fee as the fee is exponentially higher than the tiny value.
I get that it can be annoying, there just isn't a desire to implement something that does a "give me only what i ask for even if it's not a benefit to me". Might even be illegal in the US to "inflate" the purchase price to a buyer just to make sure there is nothing left over.
In sum: There is no way to get the system to provide a 1:1 trade of exactly what you want to sell for the specified price. There is also no way to "calculate" the price unless the system sat still for an extended period with no volume. Anything you attempt to calculate on screen could already be made irrelevant in the back end via API or other traders.
The only other option for getting rid of an "exact value" would be to withdraw it and sell it elsewhere. Shapeshift would be a good example. There you can mess with the values to spend exactly 1 BTC, or enter 1 BTC and it will simply tell you how much BCH you'll get. It's not an order book with a system trying to match up trades.
Note: Basing this "Bittrex" specific information based on some Youtube video's of the exchange and this article: https://medium.com/@scozky/getting-started-with-trading-on-bittrex-55237f482ef5. The bulk of the knowledge was used to confirm that Bittrex uses a system that is almost exactly the same as every other "advanced" trading system (IE: Coinbase = simplistic. No limit prices. You get what they decide to give you) that implements usage of "limit orders".
EDIT: I missed the "fee" aspect here. You'll never "not have enough" The fee's are percentage based. Trade occur in small slices since the system is matching you as a buyer, up to someone else who is a seller, for equal to, or less than your limit. If you wanted to buy 1 BTC at .002 per BCH.. and it found someone that will sell 1 BCH for .002, they take their fee off THAT trade. The trade was worth 1 BCH. When they take 0.25% (assuming their zendesk post is accurate) you get 0.9975 BCH. They keep .0025 BCH as "the fee".
Final Note: I'm over simplifying the limit system for Bittrex as this isn't part of the question.