跳转到内容

atof, atoff : 字符串转换为双精度或单精度浮点数

#include <stdlib.h>
double atof(const char *s);
float atoff(const char *s);
```### 描述
atof 将字符串的初始部分转换为双精度浮点数。atoff 将字符串的初始部分转换为单精度浮点数。这些函数解析字符字符串 s,定位一个可以转换为浮点值的子字符串。该子字符串必须匹配以下格式:[+|-]digits[.][digits][(e|E)[+|-]digits]
被转换的子字符串是 s 中具有预期格式的最长初始片段,从第一个非空白字符开始。如果 str 为空、完全由空白字符组成,或者第一个非空白字符不是 +、-、. 或数字,则该子字符串为空。
atof(s) 的实现方式为 strtod(s, NULL)。atoff(s) 的实现方式为 strtodf(s, NULL)。### 返回值
atof 将转换后的子字符串值(如果有)作为双精度浮点数返回;如果无法执行转换,则返回 0.0。如果正确的值超出可表示值的范围,则返回正或负的 HUGE_VAL,并将 ERANGE 存储在 errno 中。如果正确的值会导致下溢,则返回 0.0,并将 ERANGE 存储在 errno 中。
atoff 遵循与 atof 相同的规则,不同之处在于它返回单精度浮点数。
---
**权威来源**: BUSMASTER DITA help source `atof.dita`, compiled into `BUSMASTER.CHM` with the application.