From 5190a3ecdc5768b88b40973845f184966f6744d7 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 1 Dec 2022 17:21:30 -0500 Subject: =?UTF-8?q?=E2=80=A2ParseFloat=20in=20JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/bqn.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/bqn.js b/docs/bqn.js index 795f4fba..105f16f8 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -660,6 +660,12 @@ let primitives = dynsys(state => { return list(gl.map((g,i) => list([g,rt[i]]))); }); +let parsefloat = (x,w) => { + let n = req1str("•ParseFloat",x,w); + if (! /^-?(\.[0-9]+|[0-9]+\.?[0-9]*)([eE][-+]?[0-9]+)?$/.test(n)) throw Error("•ParseFloat: invalid float format"); + return parseFloat(n); +} + let isint = n => isnum(n) && n===(n|0); let isnat = n => isint(n) && n>=0; let fact = (x,w) => { @@ -781,7 +787,7 @@ let rand = (() => { let sysvals = { bqn:dynsys_copy(makebqnfn("•BQN",r=>run(...r))), rebqn, primitives, type, glyph, decompose, fmt:fmt1, repr, currenterror, unixtime, - js:dojs, math:mathns, ns:nsns, rand, + js:dojs, parsefloat, math:mathns, ns:nsns, rand, listsys: dynsys(_ => list(Object.keys(sysvals).sort().map(str))) }; -- cgit v1.2.3