函数

GLibascii_strtod

声明 [源代码]

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

说明 [源代码]

将字符串转换为浮点数。

此函数的行为与 C 语言环境中的标准 strtod() 函数类似。它会在不实际更改当前语言环境的情况下执行此操作,因为这在多线程环境中是不安全的。此实现的局限性在于此函数仍接受无穷性和无穷大值的本地化版本。

此函数通常用于读取配置文件或其他非用户输入(这些输入应独立于语言环境)。要处理用户的输入,通常应使用对语言环境敏感的系统 strtod() 函数。

如需以独立于语言环境的方式将 gdouble 转换为字符串,请使用 g_ascii_dtostr()

如果正确的值会导致溢出,则返回正或负 HUGE_VAL(根据值的符号),并将 ERANGE 存储在 errno 中。如果正确的值会导致下溢,则返回零并将 ERANGE 存储在 errno 中。

此函数会在调用 strtod() 之前重置 errno,这样你才能可靠地检测到溢出和下溢。

参数

nptr

类型: const gchar*

要转换为数字值的字符串。

此数据由函数调用者所有。
该值是一个以空字符结尾的 UTF-8 字符串。
endptr

类型: gchar**

如果非 NULL,则返回转换中使用的最后一个字符后的​​字符。

此参数将由函数设置。
此参数可以为 NULL
返回的数据由函数所有。
该值是一个以空字符结尾的 UTF-8 字符串。

返回值

类型: gdouble

转换后的值。