From 11266ea732e2533081283290c3c865c234e79b2a Mon Sep 17 00:00:00 2001 From: _ov4 Date: Thu, 22 Oct 2026 15:04:43 +0000 Subject: fix(stdlib): make IS_NUM agree with STR_TO_NUM and explain conversion errors Co-Authored-By: Claude Sonnet 5.5 --- doc/language/function/cpsc-function-is_num.7.md | 2 +- doc/language/function/cpsc-function-str_to_num.7.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/language/function/cpsc-function-is_num.7.md b/doc/language/function/cpsc-function-is_num.7.md index efb5f1a..3b9641d 100644 --- a/doc/language/function/cpsc-function-is_num.7.md +++ b/doc/language/function/cpsc-function-is_num.7.md @@ -14,7 +14,7 @@ IS_NUM(text : STRING) RETURNS BOOLEAN Provided by the standard string library, loaded and linked by default. -Return true for a nonempty string fully consumed by the runtime's numeric conversion. Leading whitespace is accepted; trailing whitespace or other trailing text is rejected. +Return true exactly when STR_TO_NUM would succeed: a nonempty string fully consumed by `strtod`, with a value inside the REAL range. Leading whitespace, NaN, inf and hexadecimal forms are accepted; trailing whitespace, trailing text, embedded NUL bytes and overflowing values such as `1e999` are rejected. Underflow to zero or a denormal is accepted. # EXAMPLE diff --git a/doc/language/function/cpsc-function-str_to_num.7.md b/doc/language/function/cpsc-function-str_to_num.7.md index acdf60b..48d24db 100644 --- a/doc/language/function/cpsc-function-str_to_num.7.md +++ b/doc/language/function/cpsc-function-str_to_num.7.md @@ -14,7 +14,7 @@ STR_TO_NUM(text : STRING) RETURNS REAL Provided by the standard string library, loaded and linked by default. -Return REAL, including for integer-looking text. The whole string must be consumed. Invalid text, trailing junk and values outside the REAL range throw a catchable exception. Use IS_NUM first to check numeric text without throwing for invalid input. +Return REAL, including for integer-looking text. The whole string must be consumed. Invalid text and trailing junk throw a catchable exception reading `STR_TO_NUM: '' is not a number`, and overflowing values throw `STR_TO_NUM: '' is out of the REAL range`. Underflow is accepted. Use IS_NUM first to check numeric text without throwing for invalid input. # EXAMPLE -- cgit v1.3.1-4-g156e