So pence is like 1 cent, and a pound is 100 cents?
The problem here is that you should end up with 58. The reason is that 256 % 100 is 56, and 256 / 100 (as integer) is 2.
So up to the return the values are still good to work with. You have pounds as 2 and pence as 56. Its the addition that you need to modify (as one of the several approaches), and you can simply
return pounds + (pence / 100.0); as your return value. That should work as it will convert 56 to 0.56 which it then adds to the 2.0 (which is actually just 2, but that should be fine).
Ultimately, if its just 100 pence per pound, then you can simply
return itemPrice / 100;. You'll want to use a money formatter to constrain it to the 2 significant digits (with 100 as the divisor you could end up with only 1 significant digit, but I don't think you can end up with 3+ significant digits).