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 ±ê×¼¹æ¶¨
Ïà¹ØÎÊ´ð£º
ÓÐÒ»10*10¾ØÕ󣬳ýÈ¥µÚÒ»¸öµã£¨0£¬0£©ºÍ×îºóÒ»µã£¨9£¬9£©£¬»¹Óа˸öµãΪ1£¬ÆäËû¶¼Îª0£¬ÒªÇóÓöþάÊý×é±íʾ¡£°Ë¸öµãÊÇËæ»úÉú³ÉµÄ£¬±àдÏà¹Ø³ÌÐò±íʾ¾ØÕóËùÓпÉÄÜÇé¿ö¡£
ÕæÐÄÇó½Ì¸÷λ¸ßÊÖ£¬°¥£¡±¾ÈËÌ«²ËÁË£¡ºÇºÇ£¡
......
´ó¼ÒºÃ£º
ÎÒÏëʵÏÖ¼ì²âµ½²åÈëSD¿¨ºó×Ô¶¯½«SD¿¨¸ñʽ»¯µÄ¹¦ÄÜ£¬²»ÖªC/C++ÖÐÓÐûÓиñʽ»¯UÅ̵ĺ¯Êý£¿
ÁíÍ⣬ÎÒ²»ÏëʹÓÃSHFormatDrive£¬ÒòΪÕâ¸öº¯Êý»áµ¯³öÊÇ·ñÒª¸ñʽ»¯µÄÌáʾ¿ò£¬ÎÒÐèÒªµÄÊÇϵͳ×Ô¶¯¸ñʽ»¯£¬¶ø²Ù×÷Õß² ......
ÔھƵê¹ÜÀíϵͳÖÐ,ÓÐÒ»¸ö¶ÔÄÚµÄϵͳ,¹©Ç°Ì¨·þÎñÔ±ºÍ¾ÀíʹÓÃ
»¹ÓÐÒ»¸ö¾ÍÊǶÔÍâ,Èÿͻ§¿ÉÒÔÔÚÍøÉÏÔ¤¶©·¿¼ä,
ËüÃÇÖ®¼äÊÇÔõôͨѶµÄ.?µ±ÎÒÌá½»Ô¤¶©·¿¼äÐÅÏ¢µÄʱºò,
ÔÚ¶ÔÄÚµÄϵͳÖÐ,ÈçºÎÖªµÀÎÒÒѾÌá½»ÁËÐÅÏ¢¹ýÈ¥.Ê¹Ç ......