Boost logo

Boost :

From: Fernando Cacciola (fernando_cacciola_at_[hidden])
Date: 2003-07-15 12:42:37


Hi Bill,

Yes, 'precision' is what I meant.
I used the term' digits' because that's what is used for 'numeric_limits<>',
but I much prefer 'precision'.
There is one thing I noticed though that I'd like you to confirm:
Because of the implementation (a normalized rep with two separate int_type
members),
given 'M' as numeric_limits<int_type>::digits10, then the decimal
'precision' is M+1.
If you look at the 'max values with different scales' output of my first
post, you'll see that all values have 19 digits, while __int64 support 18
digits at most.

That is,

  numeric_limits<decimal>::digits
= numeric_limits<decimal>::digits10
= numeric_limits<int_type>::digits10+1

>
> I would say "digits to the right of the decimal point". (Digits
> to the left of the point I would also call "decimal" because
> they're base-10.)
>
Agreed.

> >
> > It cannot be > '(digits-1'), ...
> >
>
> Yes, the scale can be equal to the precision (which I believe is
> what you're calling "digits"); but then, in general, there won't be
> any digits to the left of the point.
>
I tried to actually create a decimal with no whole digit to show the
equality you mentioned above but failed.
Could it be that because of the implementation there is always at least one
whole digit?
I think so, and in this case, the scale can be at most precision-1.

> >
> > If the concept of 'digits' is formalized, alon with its relation
> > to 'scale', then this statement could simply say that "The conversion
> > will be exact if the string contains no more than 'digits()' digits
> > (whole and/or decimal)"
> >
>
> I don't think that's right. I can assign 123.45 to a decimal with
> a scale of 2 without rounding.
As long as 'precision' is >= 5.

> Do I misunderstand what you're saying?
>
No, the statement was not clear enough.
What I meant is this: if the string contains a total of more than
'precision' digits, the representation won't be exact. In fact, it will have
an implementation-defined value.
So, I would leave the original sentence, and add a next sentence stating the
above additional constrian.

Fernando Cacciola


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk