Function: string-to-number

string-to-number is a function defined in data.c.

Signature

(string-to-number STRING &optional BASE)

Documentation

Parse STRING as a decimal number and return the number.

Ignore leading spaces and tabs, and all trailing chars. Return 0 if STRING cannot be parsed as an integer or floating point number.

If BASE, interpret STRING as a number in that base. If BASE isn't present, base 10 is used. BASE must be between 2 and 16 (inclusive). If the base used is not 10, STRING is always parsed as an integer.

Other relevant functions are documented in the string group.

View in manual

Probably introduced at or before Emacs version 20.1.

Shortdoc

;; string
(string-to-number "42")
    => 42
  (string-to-number "deadbeef" 16)
    => 3735928559
  (string-to-number "2.5e+03")
    => 2500.0

Aliases

epg--time-from-seconds erc-string-to-emacs-time (obsolete since 27.1)

Source Code

// Defined in /usr/src/emacs/src/data.c
{
  int b;

  CHECK_STRING (string);

  if (NILP (base))
    b = 10;
  else
    {
      CHECK_FIXNUM (base);
      if (! (XFIXNUM (base) >= 2 && XFIXNUM (base) <= 16))
	xsignal1 (Qargs_out_of_range, base);
      b = XFIXNUM (base);
    }

  char *p = SSDATA (string);
  while (*p == ' ' || *p == '\t')
    p++;

  Lisp_Object val = string_to_number (p, b, 0);
  return NILP (val) ? make_fixnum (0) : val;
}