If you are actually worried about your Currency value going negative, it is better to use a signed integer, since that allows you to detect that it went negative. The failure mode of a signed integer Currency going negative is also safer, since subsequent checks for whether the player can purchase something will indicate they can't.
If you use an unsigned integer and a mistake in the code subtracts more currency than there was, then you end up with a very large positive number and then even correct code will allow the player to purchase anything.
Generally, you should only have two functions that manipulate your currency - one function to add money the player finds/earns/steals/etc and one function to subtract money the player spends. The function that subtracts should check that there is enough money available before subtracting and return indicating a failure if there isn't enough money. It should also make sure you aren't subtracting a negative amount. Then you only need to check in one place.