aboutsummaryrefslogtreecommitdiff
path: root/api/nums.yaml
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-04-27 16:49:38 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-04-27 16:49:38 -0400
commitbaf990e65c62f42e45fe25ac385db9536d3f1788 (patch)
tree7b89cecde1d6cd3b600b9295e0ad22a702cd1065 /api/nums.yaml
parent1a8a8bc3e2ebd9c282db8131902f9bb5de8c03cb (diff)
Update stdlib to use `print` instead of `printf` in all cases. This
means bringing in fpconv to do float-to-string conversion and a few updates to integer and number methods for string formatting.
Diffstat (limited to 'api/nums.yaml')
-rw-r--r--api/nums.yaml79
1 files changed, 32 insertions, 47 deletions
diff --git a/api/nums.yaml b/api/nums.yaml
index 37b2c7c5..e666a0d6 100644
--- a/api/nums.yaml
+++ b/api/nums.yaml
@@ -378,28 +378,6 @@ Num.floor:
>> (3.7).floor()
= 3
-Num.format:
- short: convert a number to text
- description: >
- Formats a number as a text with a specified precision.
- return:
- type: 'Text'
- description: >
- A text representation of the number with the specified precision.
- args:
- n:
- type: 'Num'
- description: >
- The number to be formatted.
- precision:
- type: 'Int'
- default: '0'
- description: >
- The number of decimal places. Default is `0`.
- example: |
- >> (3.14159).format(precision=2)
- = "3.14"
-
Num.hypot:
short: Euclidean distance function
description: >
@@ -728,15 +706,44 @@ Num.percent:
description: >
The number to be converted to a percent.
precision:
- type: 'Int'
- default: '0'
+ type: 'Num'
+ default: '0.01'
description: >
- The number of decimal places. Default is `0`.
+ Round the percentage to this precision level.
example: |
>> (0.5).percent()
= "50%"
>> (1./3.).percent(2)
= "33.33%"
+ >> (1./3.).percent(2, precision=0.0001)
+ = "33.3333%"
+ >> (1./3.).percent(2, precision=10.)
+ = "30%"
+
+Num.with_precision:
+ short: round to a given precision
+ description: >
+ Round a number to the given precision level (specified as `10`, `.1`, `.001` etc).
+ return:
+ type: 'Num'
+ description: >
+ The number, rounded to the given precision level.
+ args:
+ n:
+ type: 'Num'
+ description: >
+ The number to be rounded to a given precision.
+ precision:
+ type: 'Num'
+ description: >
+ The precision to which the number should be rounded.
+ example: |
+ >> (0.1234567).with_precision(0.01)
+ = 0.12
+ >> (123456.).with_precision(100)
+ = 123500
+ >> (1234567.).with_precision(5)
+ = 1234565
Num.rint:
short: round to nearest integer
@@ -776,28 +783,6 @@ Num.round:
>> (2.7).round()
= 3
-Num.scientific:
- short: format in scientific notation
- description: >
- Formats a number in scientific notation with a specified precision.
- return:
- type: 'Text'
- description: >
- A text representation of the number in scientific notation with the specified precision.
- args:
- n:
- type: 'Num'
- description: >
- The number to be formatted.
- precision:
- type: 'Int'
- default: '0'
- description: >
- The number of decimal places. Default is `0`.
- example: |
- >> (12345.6789).scientific(precision=2)
- = "1.23e+04"
-
Num.significand:
short: get mantissa
description: >