?
This document uses PHP Chinese website manual Release
在頭文件<stdlib.h>中定義 | ||
---|---|---|
double atof(const char * str); |
解釋str指向的字節(jié)串中的浮點值。
函數(shù)丟棄任何空格字符(由std :: isspace()確定),直到找到第一個非空白字符。 然后,它需要盡可能多的字符來形成有效的浮點表示并將它們轉(zhuǎn)換為浮點值。 有效的浮點值可以是以下值之一:
十進制浮點表達式。它由以下部分組成:
(可選)加號或減號
非空十進制數(shù)字序列可選地包含小數(shù)點字符(由當(dāng)前Clocale
來決定)(定義有效數(shù)字)
(可選)e
或者E
跟隨可選的負號或加號和非空序列的十進制數(shù)字(定義指數(shù))
二進制浮點表達式。它由以下部分組成:
(可選)加號或減號
0x
或 0X
非空的十六進制數(shù)字序列可選地包含小數(shù)點字符(由當(dāng)前C確定locale
)(定義有效數(shù)字)
(可選)p
或者P
跟隨可選的負號或加號和非空序列的十進制數(shù)字(定義指數(shù))
無限表達。它由以下部分組成:
(可選)加號或減號
INF
或者INFINITY
無視事件
非數(shù)字表達式。它由以下部分組成:
(可選)加號或減號
NAN
或NAN(
char_sequence)
忽略該NAN
部分的情況。char_sequence只能包含字母數(shù)字字符。結(jié)果是安靜的NaN浮點值。
任何其他可能被當(dāng)前安裝的C locale
接受的表達式
str | - | 指向要解釋的以空字符結(jié)尾的字節(jié)字符串 |
---|
若成功,則返回double值對應(yīng)str的內(nèi)容。 如果轉(zhuǎn)換后的值超出了返回類型的范圍,則返回值未定義。 如果不能執(zhí)行轉(zhuǎn)換,則返回0.0。
#include <stdlib.h>#include <stdio.h> int main(void){ printf("%g\n", atof(" -0.0000000123junk")); printf("%g\n", atof("0.012")); printf("%g\n", atof("15e16")); printf("%g\n", atof("-0x1afp-2")); printf("%g\n", atof("inF")); printf("%g\n", atof("Nan")); printf("%g\n", atof("1.0e+309")); // UB: out of range of double printf("%g\n", atof("0.0")); printf("%g\n", atof("junk")); // no conversion can be performed}
可能的輸出:
-1.23e-080.0121.5e+17-107.75inf nan inf00
C11標(biāo)準(zhǔn)(ISO / IEC 9899:2011):
7.22.1.1 atof函數(shù)(p:341)
C99標(biāo)準(zhǔn)(ISO / IEC 9899:1999):
7.20.1.1 atof函數(shù)(p:307)
C89 / C90標(biāo)準(zhǔn)(ISO / IEC 9899:1990):
4.10.1.1 atof函數(shù)
strtofstrtodstrtold(C99)(C99) | 將字節(jié)字符串轉(zhuǎn)換為浮點值(函數(shù)) |
---|
| 用于atof的C ++文檔 |