c ÓïÑÔÀ︡µãÏà³Ë ΪʲôСÊýȫΪ0ÁË - C/C++ / CÓïÑÔ
ÈçÌâ:c ÓïÑÔÀ︡µãÏà³Ë ΪʲôСÊýȫΪ0ÁË
float x=8266.206055;
float y=7226.922363;
float z;
z=x*y;
z=59739228.000000;
ΪʲôµÃµ½µÄZ СÊýµãºóÃæÈ«Îª0ÁË
ºÇºÇ£¬³¬³ö¸¡µãÄܱíʾ·¶Î§ÁË¡£
Âé·³ÓÐÈËÖªµÀµÄ¸æËßÏ ÊÇʲôÔÒòÒýÆð£¬Ó¦¸ÃÔõô½â¾ö
float -> doubleÄØ?
¸ÄΪdouble ûʲô±ä»¯µÄ
ºÇºÇ£¬Â¥Ö÷¿ÉÒÔÌí¼ÓÏÂÃæ´úÂë²é¿´½á¹û£º
C/C++ code:
printf("%.8X\r\n", *(int*)&z);
ÆäʵÖ÷Òª»¹ÊÇÊä³ö¸ñʽÎÊÌâ¡£ÕâÀïÓ¦¸ÃÒÔÖ¸ÊýÐÎʽÊä³ö¡£
ÓÉÓÚ¶ÔÓÚµ¥¾«¶È¸¡µãÊý¶øÑÔ£¬ÆäËùÄܱíʾµÄ¾«¶ÈÒѾµ½¶¥ÁË£¬ËùÒÔÕâÀï¿ÉÒÔÓÃdouble£¬Ë«¾«¶È¸¡µãÀ´±íʾ¾«¶È¸ü¸ßµÄÊý¡£
³¬³öÁËfloatÄܱíʾµÄ¾«¶È·¶Î§ÁË£¬¾ÍÊÇdoubleÒ²Ò»Ñù³¬³ö¾«¶È·¶Î§£¬·½·¨£ºÏֳɵÄûÓУ¬Äã¿ÉÒÔ×Ô¼ºÐ´¸ö¸ü´ó½øÎ»ÖƵıíʾÊý×ֵĽøÎ»ÖÆ£¬±È·½Ëµ10^9½øÎ»ÖÆ£¬ÎÒͬѧд¹ýÒ»¸ö£¬¿ÉÒÔ´æÎÞÏÞ룬ºóÕßÖ±½Óϸö´óÊý¼ÆËãÆ÷£¬ËãһϺÃÁË
C/C++ code:
#include <stdio.h>
int main(void)
{
double x=8266.206055;
double y=7226.922363;
double z;
z = x * y;
printf("%.15g\r\n", z);
}
C ±ê×¼ÒªÇó float ÀàÐÍÖÁÉÙÒªÄܾ«È·±íʾµ½Ð¡Êýµãºó6λ¡£float Ò»°ãÊÇ 32 λµÄ¡£
C ±ê×¼¹æ¶¨
Ïà¹ØÎÊ´ð£º
ÈçÌ⣬C/C++ÖеÄexeclÔõôµ÷ÓÃдºÃµÄjava³ÌÐò£¬
execl("/opt/java1.5/bin/java","MyClass",NULL);
ÕâÑùµÄ²»ÐÐŶ¡£
²»»á.
ÔËÐÐjava³ÌÐò
ÕÒ¹¤¾ß²é¿´Ò»ÏÂÄǸö³ÌÐòµÄÃüÁîÐÐ
ËÑË÷Ï£ºjni ......
ÔÚ¸ùĿ¼/libÖдæ·ÅÒ»¸ölog.c£¬log.h£¬²¢ÓÃÏÂÃæµÄÓï¾ä£º
gcc -c log.c
ar crv liblog.a log.o
±àÒë³öÒ»¸öliblog.a¾²Ì¬¿â£¬È»ºóÔÚÎļþ¼Ð£º/testfileÖд´½¨Ò»¸ötest.cºÍtestc.c£¬test.cÖÐÒýÓÃÁËtestc.cÖж¨ÒåµÄ·½·¨ ......
visual c++2008Ëٳɰ棬²»ÄܱàÒëC³ÌÐòÂð£¿Èç¹ûÄÜÊÇÔõô¿ªÊ¼µÄ°¡£¿ÓÃËü´øµÄÃüÁîÌáʾµ¥Ôª³ýÍâ ¡£
н¨¹¤³Ì£¨¿Õ¹¤³Ì»òwin32¿ØÖÆÌ¨£©
¾ø¶Ô¿ÉÒÔ¡£½¨Á¢win32¿ØÖÆÌ¨³ÌÐò¾Í¿ÉÒÔ
ÒýÓÃ
н¨¹¤³Ì£¨¿Õ¹¤³Ì»òwin32¿ØÖÆÌ¨£ ......