I found this problem occuring mainly when handling raster data with floating point data. The straight forward approach (in the ArcMap Toolbox' sense of way):
- ArcToolbox > Spatial Analyst Tools > Map Algebra > Raster Calculator
Multiply your raster by 1^X with X corresponding the maximum decimal places contained. The new raster should now be free of digits, although still being a floating pixel value raster.
- ArcToolbox > Data Management Tools > Raster > Raster Dataset > Copy Raster
In the Pixel Value drop-down menu select 32_Bit_Signed_Integer
- Now that you have a non-float raster (and ArcMap surely loves these) create an attribute table:
ArcToolbox > Data Management Tools > Raster > Raster Properties > Build Raster Attribute Table
- Open the attribute table, add a field and use Field Calculator to get your old pixel values back - by calculating "Your Value= 1 / 1^X"
Hope that helps