You have to modify your client to make a higher-precision transaction like this, but the change isn't difficult. It's not a problem. I'd be surprised if this hasn't been done before.
CTransaction(hash=65c356, ver=1, vin.size=1, vout.size=2, nLockTime=0)
CTxIn(COutPoint(893335, 0), scriptSig=0x01B8C315FD58F0DFA0DEA2)
CTxOut(nValue=1.85850000, scriptPubKey=OP_DUP OP_HASH160 0x3181)
CTxOut(nValue=3.14150000, scriptPubKey=OP_DUP OP_HASH160 0xF99E)