title: Converting varchar pence to decimal pounds and pence
body: <p>I have a field varchar(100) which contains pence as digits, all 35 characters long and possibly with a leading -ve. I need to return this as pounds and pence, per the second and third fields below.</p>
  
  <p>I get differing results from</p>
  
  <pre><code>SELECT
     [Tax1_156_PaymentNotSubj]
    ,CAST(LEFT([Tax1_156_PaymentNotSubj],33) + '.' + RIGHT([Tax1_156_PaymentNotSubj],2) AS decimal(35,2)) AS NegCastDecs
    ,CONVERT(decimal(35,2), LEFT([Tax1_156_PaymentNotSubj],33) + '.' + RIGHT([Tax1_156_PaymentNotSubj],2)) AS NegConvDecs
    ,CAST((CAST([Tax1_156_PaymentNotSubj] AS integer)) / 10 AS decimal(35,2)) AS NegCastIntDecs
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/ZOwDY.jpg" alt="Results"></p>
  
  <p>What am I missing in the final, double cast field, and which is the best method to use?</p>