Bitcoins values are stored in 64-bit integers, with 1 BTC stored as 100,000,000 which gives plenty of room to fractionalize, since it's stored as if it where a double-precision number.
Integers. BTC is only used for display; everything is actually computed in terms of Satoshis (1 BTC = 10^8 Satoshis). Thus very small transactions are possible.