aboutsummaryrefslogtreecommitdiff
path: root/src/stdlib/nums.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-03-24 14:56:11 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-03-24 14:56:11 -0400
commit31af868b5d5825b3179ae8cdb85554f993e20344 (patch)
tree87b80cd1ff577d1df0b86eaefca1e6106da6140b /src/stdlib/nums.c
parentf79d6cc20a08711bc7d5fc2259c2f0bd5e0f744d (diff)
Add num:percent()
Diffstat (limited to 'src/stdlib/nums.c')
-rw-r--r--src/stdlib/nums.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/stdlib/nums.c b/src/stdlib/nums.c
index 98f7b509..93e2b21b 100644
--- a/src/stdlib/nums.c
+++ b/src/stdlib/nums.c
@@ -57,6 +57,10 @@ public Text_t Num$scientific(double f, Int_t precision) {
return Text$format("%.*e", (int)Int64$from_int(precision, false), f);
}
+public Text_t Num$percent(double f, Int_t precision) {
+ return Text$format("%.*f%%", (int)Int64$from_int(precision, false), 100.*f);
+}
+
public CONSTFUNC double Num$mod(double num, double modulus) {
// Euclidean division, see: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf
double r = remainder(num, modulus);
@@ -138,6 +142,10 @@ public Text_t Num32$scientific(float f, Int_t precision) {
return Text$format("%.*e", (int)Int64$from_int(precision, false), (double)f);
}
+public Text_t Num32$percent(float f, Int_t precision) {
+ return Text$format("%.*f%%", (int)Int64$from_int(precision, false), 100.*(double)f);
+}
+
public CONSTFUNC float Num32$mod(float num, float modulus) {
// Euclidean division, see: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf
float r = remainderf(num, modulus);