I am using the [this](http://pointclouds.org/documentation/tutorials/matrix_transform.php) from PCL to transform the point cloud I have. Basically, I am only translating the cloud by some offset. 

The problem is I am losing the precision after applying this transformation. More clear in the figure below.

I see that this only happens when I have large values(>6 digits) for my offset, by which the cloud is getting translated.

Below is the code which makes use of the pcl library

```
 Eigen::Matrix4d translationMatrix = Eigen::Matrix4d::Identity();

 //translation
 translationMatrix(0,3) = 1000000;
 translationMatrix(1,3) = 1000000;

 pcl::PointCloud<pcl::PointXYZ>::Ptr translatedCloud;
 translatedCloud.reset(new pcl::PointCloud<pcl::PointXYZ>());

 pcl::transformPointCloud(*cloud,*translatedCloud,translationMatrix);

 pcl::io::savePCDFileASCII ("translatedCloud.pcd",*translatedCloud);

```

original cloud

[![original cloud](https://i.stack.imgur.com/8Ewfq.png)](https://i.stack.imgur.com/8Ewfq.png)

transformed cloud

[![transformed cloud](https://i.stack.imgur.com/HJW5k.png)](https://i.stack.imgur.com/HJW5k.png)

I suspect the problem might be the range of the data type being used. 

Any information on this would be helpful.