I can't reproduce your result. I tried this:with T0(TotalSales, StockValue) as ( select 200.123456789, 22.123456789), T1(TotalSales, StockValue) as ( select 15.123456788, 150.1234567789) selectCAST(((T0.TotalSales - ISNULL(T1.TotalSales, 0)) - (T0.StockValue - ISNULL(T1.StockValue, 0))) / (T0.StockValue - ISNULL(T1.StockValue, 0)) * 100 AS decimal(15,2)) AS 'Gross Profit %'from t0, t1
I got this result:Gross Profit %----------------------------------------244.53(1 row(s) affected)
with just two decimal places