读书人

怎么取double的最后2个字节

发布时间: 2013-06-26 14:29:32 作者: rapoo

如何取double的最后2个字节
想要获取1个double数的最后2个字节,如何做? double
[解决办法]
http://blog.csdn.net/mahushen/article/details/8238186
[解决办法]
doule是8个字节


procedure TForm1.Button1Click(Sender: TObject);
var
dou:Double;
buf:array[0..7] of Byte;
begin
dou:=0.12457;
Move(dou,buf,8);
ShowMessage('第7位:'+IntToStr(buf[6])+'第8位:'+IntToStr(buf[7]));
end;


[解决办法]
可以定义一个结构:
Type
PFloatRec=^TFloatRec;
TFloatRec=Record
a:Word;
b:Word;
c:Word;
d:Word;
End;
然后PFloatRec(@double)^.d就是最后两个字节
[解决办法]
还有一种办法是通过PInt64指针(Int64长度和Dobule一样):
Word(PInt64(@double)^ shr 48)
[解决办法]
var
i:Double;
s:string;
begin
i:=8.886;
s:=FloatToStr(i);
s:=RightStr(s,2);
showmessage(s);
end;
结果为86;

RightStr(S,2);//从S字符串变量的最右边(第一个字符包括第一个字符)开始截取2个字符;
还有必需引用系统单元StrUtils;如果要使用LeftStr,RightStr,MidStr。

读书人网 >.NET

热点推荐