How do I convert 30.8365146 into two integers, 30 and 8365146, for example, in Arduino or C?

This problem faces me when I try to send [GPS](http://en.wikipedia.org/wiki/Global_Positioning_System) data via [XBee](http://en.wikipedia.org/wiki/XBee) series 1 which don't allow to transmit fraction numbers, so I decided to split the data into two parts. How can I do this?

I have tried something like this:

```
double num=30.233;
int a,b;

a = floor(num); 
b = (num-a) * pow(10,3);

```

The output is `30` and `232`! The output is not 30 and 233. Why and how can I fix it?