When I tried to populate the target field I received the following error -
"This control only accepts numerics or null as an input."
So, rather than set the value of the target field to data.Price I tried setting it to data.Price.Value. I received the same error.
On closer inspection of the Value property of the source object you see that it looks like a string rather than a decimal or float.
So I tried converting it to float using parseFloat() as I set the value of the target field.
This worked and the field was populated correctly.
So in conclusion, the value returned from a monetary field retrieved using the REST interface is an object which has a string property named Value. In order to use this value to populate another field it must first be converted to a float.
Hope this helps!