¡¡XiaoHui.Net Ц»ã³ÌÐòÔ±ÂÛ̳ ¡ú Visual Basic ÌÖÂÛÇø

   ÄãÕæÕýÀí½âAllow Unrounded Floating Point OperationsÑ¡ÏîµÄº¬ÒåÂð£¿


Ò³: [1]

cjbly20062007-12-5 11:57
ÄãÕæÕýÀí½âAllow Unrounded Floating Point OperationsÑ¡ÏîµÄº¬ÒåÂð£¿

[url=http://selby.com.cn/Programming/Html/13.html]ÄãÕæÕýÀí½âAllow Unrounded Floating Point OperationsÑ¡ÏîµÄº¬ÒåÂð£¿[/url]
À´×Ô΢ÈíµÄ×ÊÁϹĴµ£º¸ß¼¶ÓÅ»¯¶Ô»°¿òÖеÄËùÓбàÒëÑ¡Ïî¶¼±»ÈÏΪÊDz»Îȶ¨µÄ£¬ËüÃÇ¿ÉÄܵ¼Ö²»ÕýÈ·µÄ½á¹û£¬ÉõÖÁ³ÌÐò±ÀÀ£¡£¶ÔÓÚÆäÖеĴó¶àÊý£¬ÕâÖÖ˵·¨ÊÇÕýÈ·µÄ£¬µ«ÊǾ­³£ÓÐÒ»¸ö½Ð×ö"Allow Unrounded Floating Point Operations"µÄÑ¡ÏîÄܹ»¸øÓèÕýÈ·µÄ½á¹û£¬·ÀÖ¹Ó¦ÓóÌÐò²úÉúbug¡£¿¼ÂÇÏÂÃæµÄ´úÂë¶Î£º

Dim x As Double, y As Double, i As Integer

x = 10 ^ 18

y = x + 1 ' this can't be expressed with 64 bits

MsgBox (y = x) ' ÏÔʾ "True" (²»ÕýÈ·µÄ½á¹û)


ÑϸñµØËµ£¬ÓÉÓÚXºÍY±äÁ¿²»°üº¬ÏàͬµÄÊýÖµ£¬MsgBox½«ÏÔʾFalse¡£¿ÉÎÊÌâÊÇ£¬ÓÉÓÚÊýÖµ1E18Óë1E18£«1¶¼ÒÔÏàͬµÄ64λ¸¡µãDoubleÀàÐÍÀ´±íʾ£¬ËüÃÇ×îÖÕ°üº¬Á˼¸ºõÏàͬµÄÊýÖµ£¬×îºóµÄMsgBox½á¹û½«ÊÇTrue¡£

Èç¹û´ò¿ªÁË"Allow Unrounded Floating Point Operations"±àÒëÑ¡ÏVB¾ÍÄÜÖØÓÃÒÑÔÚÊýѧЭ´¦ÀíÆ÷¶ÑÕ»ÖеÄÊýÖµ£¬¶ø²»ÊÇÄÚ´æÖеÄÊýÖµ£¨±ÈÈ磺±äÁ¿£©¡£ÒòΪFPU¶ÑÕ»¾ß±¸80λµÄ¾«¶È£¬Òò´Ë¾Í¿ÉÒÔÇø·Ö³öÕâ2¸öÊýÖµµÄ²»Í¬£º


' if the program is compiled using the

' "Allow Unrounded Floating Point Operations" compiler option

MsgBox (y = x) ' ÏÔʾ "False" (ÕýÈ·µÄ½á¹û)


×ܽáһϣºµ±ÒÔ½âÊÍģʽ¡¢»òÕß±àÒëµÄp£­codeģʽ¡¢»òÕß±àÒëµÄnative´úÂëģʽµ«¹Øµô"Allow Unrounded Floating Point Operations"Ñ¡ÏîÕâ3ÖÖ·½Ê½ÔËÐÐÒ»¸ö³ÌÐòʱ£¬ËùÓи¡µãÊý×ÖÔËËãÔÚÄÚ²¿¶¼ÒÔ80λµÄ¾«¶È½øÐд¦Àí¡£µ«Èç¹ûÓÐÒ»¸öÊýÖµÊÇ´æ´¢ÔÚ64λDouble±äÁ¿ÖУ¬½á¹û¾ÍÊǽӽüµÄÁË£¬²¢ÇÒ£¬ËæºóʹÓÃÄǸö±äÁ¿µÄ±í´ïʽҲ½«²úÉú½üËÆµÄ½á¹û£¬¶ø²»ÊǾø¶ÔÕýÈ·µÄ½á¹û¡£

Ïà·´£¬Èç¹û´ò¿ª"Allow Unrounded Floating Point Operations"±àÒëÑ¡ÏîºóÔËÐÐÒ»¶Înative±àÒë´úÂ룬ÔÚËæºóµÄ±í´ïʽÖÐVB¾Í¾­³£ÄÜÖØÓÃÄÚ²¿µÄ80λÊýÖµ£¬¶øºöÂÔ´æ´¢ÔÚ±äÁ¿Öеĵ±Ç°ÊýÖµ¡£×¢Ò⣺ÎÒÃDz¢²»ÄÜÍêÈ«¿ØÖÆÕâ¸ö¹¦ÄÜ£¬VBÒ²Ðí¶Ô´ËÉúЧ£¬Ò²Ðí¾Í²»ÉúЧ£¬ÕâҪȡ¾öÓÚ±í´ïʽµÄ¸´Ôӳ̶ÈÒÔ¼°×î³õ·ÖÅäÊýÖµÓï¾äÓëËæºó²úÉú½á¹ûµÄ±í´ïʽÓï¾äµÄ¾àÀëÔ¶½ü¡£[url=http://selby.com.cn]³ÌÐò¿ª·¢[/url]



²é¿´ÍêÕû°æ±¾: ÄãÕæÕýÀí½âAllow Unrounded Floating Point OperationsÑ¡ÏîµÄº¬ÒåÂð£¿