1
$\begingroup$

I have a problem with Blender 2.76 running on Ubuntu 15.10 (and probably other systems, too.)

When I move an object in Object Mode or a vertex in Edit Mode using the Grab key G and enter a distance (e.g. 50cm on Z), the object or vertex will almost always move by a distance slightly different. Attached is a screenshot with GZ 50cm and the resulting distance of 49.9998cm.

Deviation between entered and "traveled" value

Why does this happen and how is it possible to move an object or vertex exactly 50cm, 1 Blender unit, 1µm etc.? Entering 50.00000 or other values does not seem to work either.

Edit: While, as brasshat said, the error is insignificant, a value of for example 49.9998cm is aesthetically unpleasing and makes reading and editing of such values very hard.

When more complex values like 32.275 become 32.27487 (this really happens), this interferes with the workflow, especially when tight tolerances are required (CAD, 3D printing, etc.).

$\endgroup$
  • 1
    $\begingroup$ Also keep in mind that blender's goals are not being as accurate as a 3D CAD software for constructional purposes. $\endgroup$ – metaphor_set May 3 '16 at 0:31
3
$\begingroup$

Since you don't provide information on your system, (e.g., processor, &c.,) it is possible that there is another explanation, but I have noticed the same behavior you're experiencing, and consider it to be because of the the way Blender, or C / C++ (the language in which Blender is written) handles floating point numbers. I have noticed similar discrepancies in numerical values at very low precision levels (the fourth or fifth significant digit from the far left, including those both to the left and to the right of the decimal point). This applies to all previous versions of Blender as well.

In most cases the difference between the observed and expected values to be so small that it could be ignored; a difference of .0002 in 50.0000 is four ten-thousandths of a percent, (or about two and a half inches in a mile) and in most cases is below the threshold of being noticeable.

$\endgroup$
  • $\begingroup$ That's right, floating point numbers are of finite precision and cannot represent all numbers: Wikipedia. $\endgroup$ – handle May 18 '18 at 13:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.