units: add conversion macros for percentage related units

Add macros to convert between ratio and percentage related units,
including percent (1/100), permille (1/1,000), permyriad (1/10,000,
also equivalent to one Basis point) and per cent mille (1/100,000).
Those are  Used for precise fractional calculations in engineering,
finance, and measurement applications.

Signed-off-by: Jonathan Santos <Jonathan.Santos@analog.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
Jonathan Santos
2026-01-14 06:27:03 -03:00
committed by Jonathan Cameron
parent fa087f5bab
commit 404a3b4c36

View File

@@ -21,6 +21,25 @@
#define PICO 1000000000000ULL
#define FEMTO 1000000000000000ULL
/*
* Percentage and related scaling units
*
* These macros define scaling factors used to convert between ratio and
* percentage-based representations with different decimal resolutions.
* They are used for precise fractional calculations in engineering, finance,
* and measurement applications.
*
* Examples:
* 1% = 0.01 = 1 / PERCENT
* 0.1% = 0.001 = 1 / PERMILLE
* 0.01% = 0.0001 = 1 / PERMYRIAD (1 basis point)
* 0.001% = 0.00001 = 1 / PERCENTMILLE
*/
#define PERCENT 100
#define PERMILLE 1000
#define PERMYRIAD 10000
#define PERCENTMILLE 100000
#define NANOHZ_PER_HZ 1000000000UL
#define MICROHZ_PER_HZ 1000000UL
#define MILLIHZ_PER_HZ 1000UL