c - atof sentiasa mengembalikan 0.0 di bawah platform Linux
PHP中文网
PHP中文网 2017-07-05 10:45:54
0
1
1087

Kod adalah seperti berikut

#include<stdio.h>

int main(){


   char* s = "123.3";
   double d = atof(s);
   printf("%lf\n", d);

   return 0;
}

Hasilnya sentiasa 0.000000, bukan 123.3, kenapa?

PHP中文网
PHP中文网

认证0级讲师

membalas semua(1)
迷茫

Kerana anda tidak memasukkan stdlib.h ( ゜ロ゜)”
Ini adalah lubang tersembunyi. Oleh kerana anda tidak memasukkan fail pengepala, tiada pengisytiharan fungsi Tanpa pengisytiharan fungsi, nilai pulangan lalai bagi fungsi perpustakaan ialah jenis int.
Jika anda menambah -Wall semasa menyusun, ia akan memberitahu anda dengan jelas bahawa ia tidak diisytiharkan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan