]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
units: add conversion macros for percentage related units
authorJonathan Santos <Jonathan.Santos@analog.com>
Wed, 14 Jan 2026 09:27:03 +0000 (06:27 -0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 22 Jan 2026 20:53:18 +0000 (20:53 +0000)
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>
include/linux/units.h

index 00e15de33eca2f870d2e2e4301ed6d5aedcec4f0..3471c5a38dcf4ec86461cda32fe25b6949805e2a 100644 (file)
 #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