Question: I first tried to cast my data from a float to an int using the `ROUND` function. I rounded the float data to a whole number, which is great. 

I next tried to insert the float data from 1 column (`totexunits`) to another column which is an `int` (`Units`). I am getting the below message:

```
Msg 232, Level 16, State 3, Line 1
Arithmetic overflow error for type int, value = 5726577093.000000.

```

I used this sql:

```
update wkimport2 set units = CONVERT(int, totexunits)

```

I am not sure whats going on. I checked that number in the database, and it does show any decimal places, yet it acts like there are some decimal places. Anyone know how I can get the column from `totexunits` to populate the units column? I'm stuck.

Answer: 
Rather `CAST` or `Convert` to `BIGINT`, as your number is to large for int. See [int, bigint, smallint, and tinyint](http://technet.microsoft.com/en-us/library/aa933198%28v=sql.80%29.aspx)

> 
> **bigint** 
> 
> 
> Integer (whole number) data from -2^63 (-9,223,372,036,854,775,808) through 2^63-1
>  (9,223,372,036,854,775,807). Storage size is 8 bytes. 
> 
> 
> **int** 
> 
> 
> Integer (whole number) data from -2^31 (-2,147,483,648) through 2^31 - 1 (2,147,483,647). Storage size is 4 bytes. The SQL-92
>  synonym for int is integer.
> 
> 
>
int can hold from -2,147,483,648 to 2,147,483,647 values. Looks like your value 5,726,577,093 is greater than what int can hold. Try bigint instead.