Re: [PATCH v5 3/5] units: add PERCENT and BASIS_POINTS macros
From: Andy Shevchenko
Date: Tue Jan 13 2026 - 01:50:31 EST
On Tue, Jan 13, 2026 at 5:32 AM Jonathan Santos <jonath4nns@xxxxxxxxx> wrote:
> On 12/27, Andy Shevchenko wrote:
> > On Sat, Dec 27, 2025 at 5:55 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> > > On Wed, 17 Dec 2025 02:52:45 -0300
> > > Jonathan Santos <Jonathan.Santos@xxxxxxxxxx> wrote:
...
> > > > +/*
> > > > + * Percentage and basis point units
> > > > + *
> > > > + * Basis points are 1/100th of a percent (1/100), commonly used in finance,
> > > > + * engineering or other applications that require precise percentage
> > > > + * calculations.
> > > > + *
> > > > + * Examples:
> > > > + * 100% = 10000 basis points = BASIS_POINTS
> > > > + * 1% = 100 basis points = PERCENT
> > >
> > > I don't understand the final equality in these examples.
> > > The top line is as it says 10000 basis points but you have it equal
> > > to BASIS_POINTS?
> >
> > Also there are pp (percentage points) and others like per mille
> >
> > https://en.wikipedia.org/wiki/Percentage_point (see "Related units" section).
>
> Hi, Andy. Thanks for the suggestions,but I am still questioning how
> the percentage points would be implemented, since it is defined as the
> difference between two percentages and we cannot use floating points.
My comment was more about the prefix (PER) and the naming (not
BASIS_POINTS, but something from PER*), and for the comprehension I
would rather see all three defined (pp is _not_ part of these as you
mentioned its semantics is different).
> Also, should we keep this approach of unit conversion?
> Example:
> value / PERCENT -> converts a value from percent to ratio
> value * PERCENT -> converts a value from ratio to percent
>
> Just to make sure it is consistent with the rest.
Sounds good at the first glance.
> > > > + */
> > > > +#define PERCENT 100UL
> > > > +#define BASIS_POINTS 10000UL
--
With Best Regards,
Andy Shevchenko