¼ÓÈëÊÕ²Ø | ÉèΪÊ×Ò³ | »áÔ±ÖÐÐÄ | ÎÒҪͶ¸å Àî´óͬ £¨https://www.lidatong.com.cn/£©- ¿Æ¼¼¡¢½¨Õ¾¡¢¾­Ñé¡¢ÔƼÆËã¡¢5G¡¢´óÊý¾Ý,Õ¾³¤Íø!
µ±Ç°Î»Ö㺠Ê×Ò³ > ´óÊý¾Ý > ÕýÎÄ

Ϊʲô64λDelphiÓ¦ÓóÌÐò¼ÆË㲻ͬÓÚ32λ¹¹½¨µÄ½á¹û£¿

·¢²¼Ê±¼ä£º2020-12-15 10:08:50 ËùÊôÀ¸Ä¿£º´óÊý¾Ý À´Ô´£ºÍøÂçÕûÀí
µ¼¶Á£ºÎÒÃÇ×î½ü¿ªÊ¼´´½¨64λ¹¹½¨ÎÒÃǵÄÓ¦ÓóÌÐòµÄ¹ý³Ì.ÔڱȽϲâÊÔÖÐ,ÎÒÃÇ·¢ÏÖ64λ°æ±¾µÄ¼ÆË㷽ʽ²»Í¬.ÎÒÓÐÒ»¸ö´úÂëʾÀýÀ´ÑÝʾÁ½¸ö¹¹½¨Ö®¼äµÄÇø±ð. var currPercent,currGross,currCalcValue : Currency;begin currGross := 1182.42; currPercent := 1.45; currCalc
ÎÒÃÇ×î½ü¿ªÊ¼´´½¨64λ¹¹½¨ÎÒÃǵÄÓ¦ÓóÌÐòµÄ¹ý³Ì.ÔڱȽϲâÊÔÖÐ,ÎÒÃÇ·¢ÏÖ64λ°æ±¾µÄ¼ÆË㷽ʽ²»Í¬.ÎÒÓÐÒ»¸ö´úÂëʾÀýÀ´ÑÝʾÁ½¸ö¹¹½¨Ö®¼äµÄÇø±ð.
var
  currPercent,currGross,currCalcValue : Currency;
begin

  currGross := 1182.42;
  currPercent := 1.45;
  currCalcValue := (currGross * (currPercent * StrToCurr('.01')));
  ShowMessage(CurrToStr(currCalcValue));
end;

Èç¹ûÄúÔÚ32λ°æ±¾ÖÐÖ´Ðд˲Ù×÷,ÔòcurrCalcValue½«Ê¹ÓÃ17.1451¼ÆËã,¶ø64λ°æ±¾ÔòÒÔ17.145·µ»Ø.

Ϊʲô64λ°æ±¾²»¼ÆËã³ö¶îÍâµÄСÊýλ£¿ËùÓбäÁ¿¶¼¶¨ÒåΪ4¸öÊ®½øÖÆ»õ±ÒÖµ.

½â¾ö·½·¨

ÕâÊÇÎÒµÄSSCCE»ùÓÚÄãµÄ´úÂë.Çë×¢ÒâʹÓÿØÖÆ̨ӦÓóÌÐò.ʹÉú»î¸ü¼òµ¥.
{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  currPercent,currCalcValue : Currency;
begin
  currGross := 1182.42;
  currPercent := 1.45;
  currCalcValue := (currGross * (currPercent * StrToCurr('.01')));
  Writeln(CurrToStr(currCalcValue));
  Readln;
end.

ÏÖÔÚ¿´¿´Éú³ÉµÄ´úÂë.µÚ32λ£º

Project3.dpr.13: currCalcValue := (currGross * (currPercent * StrToCurr('.01')));
0041C409 8D45EC           lea eax,[ebp-$14]
0041C40C BADCC44100       mov edx,$0041c4dc
0041C411 E8A6A2FEFF       call @UStrLAsg
0041C416 8B1504E74100     mov edx,[$0041e704]
0041C41C 8B45EC           mov eax,[ebp-$14]
0041C41F E870AFFFFF       call StrToCurr
0041C424 DF7DE0           fistp qword ptr [ebp-$20]
0041C427 9B               wait 
0041C428 DF2DD83E4200     fild qword ptr [$00423ed8]
0041C42E DF6DE0           fild qword ptr [ebp-$20]
0041C431 DEC9             fmulp st(1)
0041C433 DF2DE03E4200     fild qword ptr [$00423ee0]
0041C439 DEC9             fmulp st(1)
0041C43B D835E4C44100     fdiv dword ptr [$0041c4e4]
0041C441 DF3DE83E4200     fistp qword ptr [$00423ee8]
0041C447 9B               wait 

¶ø64λ£º

Project3.dpr.13: currCalcValue := (currGross * (currPercent * StrToCurr('.01')));
0000000000428A0E 488D4D38         lea rcx,[rbp+$38]
0000000000428A12 488D1513010000   lea rdx,[rel $00000113]
0000000000428A19 E84213FEFF       call @UStrLAsg
0000000000428A1E 488B4D38         mov rcx,[rbp+$38]
0000000000428A22 488B155F480000   mov rdx,[rel $0000485f]
0000000000428A29 E83280FFFF       call StrToCurr
0000000000428A2E 4889C1           mov rcx,rax
0000000000428A31 488B0510E80000   mov rax,[rel $0000e810]
0000000000428A38 48F7E9           imul rcx
0000000000428A3B C7C110270000     mov ecx,$00002710
0000000000428A41 48F7F9           idiv rcx
0000000000428A44 488BC8           mov rcx,rax
0000000000428A47 488B0502E80000   mov rax,[rel $0000e802]
0000000000428A4E 48F7E9           imul rcx
0000000000428A51 C7C110270000     mov ecx,$00002710
0000000000428A57 48F7F9           idiv rcx
0000000000428A5A 488905F7E70000   mov [rel $0000e7f7],rax

Çë×¢Òâ,32λ´úÂë¶ÔFPUÖ´ÐÐËãÊõ,µ«64λ´úÂëʹÓÃÕûÊýËãÊõÖ´ÐÐ.ÕâÊǹؼüµÄÇø±ð.

ÔÚ32λ´úÂëÖÐ,Ö´ÐÐÒÔϼÆË㣺

>½«¡°0.01¡±¶Ò»»Îª»õ±Ò,¼´100,ÔÊÐí¹Ì¶¨µãÒƶ¯10,000.
>½«14,500¼ÓÔص½FPUÖÐ.
>³ËÒÔ100¸ø1,450,000.
>Ôö¼Ó11,824,200Ôª,Ϊ17,145,090,000,000Ôª.
>³ýÒÔ10,000 ^ 2¸øÓè171,450.9.
>ÉáÈëµ½×î½Ó½üµÄÕûÊý,¸ø³ö171,451.
>½«Æä´æ´¢ÔÚÄúµÄ»õ±Ò±äÁ¿ÖÐ.½á¹ûÊÇ17.1451.

ÏÖÔÚ,ÔÚ64λ´úÂëÖÐ,ËüÓе㲻ͬ.ÒòΪÎÒÃÇһֱʹÓÃ64λÕûÊý.¿´ÆðÀ´ÏñÕâÑù£º

>½«¡°0.01¡±¶Ò»»Îª»õ±Ò,¼´100.
>³ËÒÔ14,500,¼´1,000.
>³ýÒÔ10,ÕâÊÇ145.
>³ËÒÔ11,200¸ø1,714,509,ÕâÊÇ171,450.ßÀŶ,ÔÚÕâÀﶪÁ˾«¶È.
>½«Æä´æ´¢ÔÚÄúµÄ»õ±Ò±äÁ¿ÖÐ.½á¹ûÊÇ17.145.

ËùÒÔÎÊÌâÊÇ64λ±àÒëÆ÷ÔÚÿһ¸öÖм䲽ÖèÖж¼»á»®·Ö10,000.´ó¸ÅÊÇΪÁ˱ÜÃâÒç³ö,±È¸¡µã¼Ä´æÆ÷¸üÓпÉÄÜÔÚ64λÕûÊý.

ÈçºÎ×öÕâÑùµÄ¼ÆË㣺

100 * 14,500 * 11,200 / 10,000 / 10,000

Ëü»áµÃµ½ÕýÈ·µÄ´ð°¸.

£¨±à¼­£ºÀî´óͬ£©

¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ!

    ÍƼöÎÄÕÂ
      ÈȵãÔĶÁ