K&R 課本內4.2節有一個 atof(char*) 的函數,
其實它還不是 Library function atof(char*) 的真正版本,
在該程式後有個習題有說明它也該認識 atof("123.456e5") 這種寫法!
(可用 TC 打入 atof 後敲 Control_F1 看說明)
大家要試著去想這樣的 atof 要怎麼寫?
以下先用個小程式測試 atof(char*) 的功能:

C:\testc>tcc af.c
Turbo C++ Version 3.00 Copyright (c) 1992 Borland International
af.c:
Turbo Link Version 5.0 Copyright (c) 1992 Borland International

Available memory 4104704

C:\testc>af
=123E5=12300000.000000
= 123E5=12300000.000000
= +123E5=12300000.000000
= -123E5=-12300000.000000
= -123 E5=-123.000000
= - 123 E5=-0.000000
=123E-5=0.001230
=123.456E7=1234560000.000000
=123.456E-7=0.000012
=123.456789135246E-7=0.000012
=123.456E-7ABC=0.000012
=123.456 E-7=123.456000
=== using %.9f
=123.456789135246E-7=0.000012346

C:\testc>type af.c
//af.c
#include <stdio.h>
#include <stdlib.h>
int main( ) {
printf("=123E5=%f\n", atof("123E5") );
printf("= 123E5=%f\n", atof(" 123E5") );
printf("= +123E5=%f\n", atof(" +123E5") );
printf("= -123E5=%f\n", atof(" -123E5") );
printf("= -123 E5=%f\n", atof(" -123 E5") );
printf("= - 123 E5=%f\n", atof(" - 123 E5") );
printf("=123E-5=%f\n", atof("123E-5") );
printf("=123.456E7=%f\n", atof("123.456E7") );
printf("=123.456E-7=%f\n", atof("123.456E-7") );
printf("=123.456789135246E-7=%f\n", atof("123.456789135246E-7") );
printf("=123.456E-7ABC=%f\n", atof("123.456E-7ABC") );
printf("=123.456 E-7=%f\n", atof("123.456 E-7") );
printf("=== using %%.9f\n");
printf("=123.456789135246E-7=%.9f\n", atof("123.456789135246E-7") );
return 0;
}