The problem here is that UI accepts configuration in terabytes and also decimal values while backend only accepts integer values in bytes.
Resolution
The vSphere UI accepts configuration in terabytes and decimal values. However, the backend only accepts integer values in bytes.
For example, if we take a VM with disk size of 1.6TB which means 1.6TB = 1759218604441.6B this byte value is rounded to 1759218604442 so that backend accepts it. Then when the Edit settings in the vSphere UI is invoked again the value 1759218604442B = 1.600000000000364
On other hand 1.5TB = 1649267441664B and there is no such problem with that value
Instead of 1.6TB we could use the value of 1.625TB or 1.75TB which represent even numbers in bytes. Or they could try inputting the value in gigabytes.