Submitted by cmichel
The yearn strategy YearnYield converts shares to tokens by doing pricePerFullShare * shares / 1e18:
But Yearns getPricePerFullShare seems to be in vault.decimals() precision, i.e., it should convert it as pricePerFullShare * shares / (10 ** vault.decimals()).
The vault decimals are the same as the underlying token decimals
The token and shares conversions do not work correctly for underlying tokens that do not have 18 decimals.
Too much or too little might be paid out leading to a loss for either the protocol or user.
Divide by 10**vault.decimals() instead of 1e18 in getTokensForShares.
Apply a similar fix in getSharesForTokens.
ritik99 (Sublime) confirmed 
