Yes a 32 bit float give you 24 significant bits which is equal to about a little bit more than 7 decimal digits. Do not forget there are 7 decimal digits regardless of decimal point position, value of exponent.
> If I am not mistaken, IEEE 754-2008 > <https://en.wikipedia.org/wiki/IEEE_floating_point> only gives you 7 > digits of precision for a 32-bit float, and 16 digits with a 64-bit > float. So, writing out 20 digits is meaningless unless you are working > with 128-bit floats (which I know we are not). I still think the best > way is to set it up with a configurable option. > > On Apr 7 2016 11:38 AM, Niemand Sonst wrote: > > I just want to avoid to get problems if there is some math behind > > that > > pin and we do round to much. > > If you take a new glas scale, you may have a intersection of 1µm and > > that can be interpolated 20 times, so you get a very small value for > > the > > increment in mm. Now change that one to inch and you do not get very > > far > > with 4 digits! > > > > If you make some maths, it does getting worth and worth with every > > calculation and eaven old calculators do calculate with more than 20 > > digits, so why should we cut digits? > > > > The print code I added, was just to show the rounding of the value we > > get with the mentioned patch. I do agree, that we will not need to > > display such small numbers in a Widget. > > > > Norbert > > > > Am 07.04.2016 um 18:19 schrieb EBo: > >> I would vote for a high level configuration. Very few people need > >> less > >> than 0.0001", so a %.4f is fine. I know of very few machines that > >> need > >> to be parametrized in millionths or less. I also know of few > >> machines > >> which are also parametrized in meters or larger units. > >> > >> Can you explain why you would want to print a position out in very > >> small fractions of a nanometer? > >> > >> EBo -- > >> > >> On Apr 7 2016 10:19 AM, Niemand Sonst wrote: > >>> I also do not like the patch as it is, as: > >>> > >>> print (float(0.0000000001)) gives 0.000000 > >>> so only 6 digits > >>> print (".10f" %float(0.000000000000000001)) gives 0.0000000001 > >>> so 10 digits. > >>> > >>> Or we make it configurable or we set a higher digits number. > >>> > >>> I recommend as default to set it to "%.20f" and make it adjustable. > >>> > >>> Norbert (gmoccapy) > >>> > >>> > >>> > >>> Am 07.04.2016 um 03:33 schrieb EBo: > >>>> On Apr 6 2016 6:17 PM, andy pugh wrote: > >>>>> Discussed on IRC, jepler came up with > >>>>> > >>>>> > >>>>> > >>>>> https://emergent.unpythonic.net/files/sandbox/0001-untested-work-around-1e-10-problem.patch > >>>>> > >>>>> (if Glade ends up with a very small number it might display > >>>>> "0.0000" > >>>>> but sent "1e-10" and then G-code says "unknown operator begining > >>>>> with > >>>>> e") > >>>>> > >>>>> Is that fix too clever? The parameters being substituted can only > >>>>> ever > >>>>> be hal pin values. > >>>>> The only numeric type in G-code is float. > >>>>> So simply changing float() to the %f formatting method is > >>>>> probably > >>>>> a > >>>>> universal fix? > >>>> It would make sense to have the format sent in the number of > >>>> digits > >>>> precision user specified. I guess that is what you mean by a %f > >>>> above > >>>> (I would have said set the format to output the proper type like > >>>> 'char > >>>> *fmt = "%8.4f";', or better yet build it sprintf(fmt, "\%%d\.%df", > >>>> length, decimal);) That would be a configurable universal fix. > >>>> > >>>> EBo -- > >>>> > >>>> > >>>> > >>>> > >>>> ------------------------------------------------------------------------------ > >>>> _______________________________________________ > >>>> Emc-developers mailing list > >>>> Emc-developers@lists.sourceforge.net > >>>> https://lists.sourceforge.net/lists/listinfo/emc-developers > >>>> > >>> > >>> > >>> > >>> ------------------------------------------------------------------------------ > >>> _______________________________________________ > >>> Emc-developers mailing list > >>> Emc-developers@lists.sourceforge.net > >>> https://lists.sourceforge.net/lists/listinfo/emc-developers > >> > >> > >> ------------------------------------------------------------------------------ > >> _______________________________________________ > >> Emc-developers mailing list > >> Emc-developers@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/emc-developers > >> > > > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Emc-developers mailing list > > Emc-developers@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > ------------------------------------------------------------------------------ > _______________________________________________ > Emc-developers mailing list > Emc-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-developers ------------------------------------------------------------------------------ _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers