Function

GLibascii_strtod

Declaration

gdouble
g_ascii_strtod (
  const gchar* nptr,
  gchar** endptr
)

Description

Converts a string to a #gdouble value.

This function behaves like the standard strtod() function does in the C locale. It does this without actually changing the current locale, since that would not be thread-safe. A limitation of the implementation is that this function will still accept localized versions of infinities and NANs.

This function is typically used when reading configuration files or other non-user input that should be locale independent. To handle input from the user you should normally use the locale-sensitive system strtod() function.

To convert from a #gdouble to a string in a locale-insensitive way, use g_ascii_dtostr().

If the correct value would cause overflow, plus or minus HUGE_VAL is returned (according to the sign of the value), and ERANGE is stored in %errno. If the correct value would cause underflow, zero is returned and ERANGE is stored in %errno.

This function resets %errno before calling strtod() so that you can reliably detect overflow and underflow.

Parameters

nptr const gchar*
 

The string to convert to a numeric value.

 The data is owned by the caller of the function.
 The string is a NUL terminated UTF-8 string.
endptr gchar**
 

If non-NULL, it returns the character after the last character used in the conversion.

 The argument will be set by the function.
 The argument can be NULL.
 The data is owned by the caller of the function.
 The string is a NUL terminated UTF-8 string.

Return value

Returns: double
 

The #gdouble value.