字符转数字问题(50)

  • 主题发起人 主题发起人 nanshan
  • 开始时间 开始时间
N

nanshan

Unregistered / Unconfirmed
GUEST, unregistred user!
function StrtoSSS(const S: string): Double;var D: Double; B: array[0..7] of byte absolute D; I: Integer;begin for I := 0 to Length(S) - 1 do B := byte(S[I + 1]); Result := D;end;function SSStoStr(const X: Double): string;var P: PByte; I: Integer; S: Integer; ii:integer;begin S := SizeOf(X); P := @X; Result := ''; for I := 0 to S - 1 do begin ii:= P^; Result := Result + Char(ii); Inc(P); endend;12345678 转回来成了 62345678 怎么解决
 
是你保存Double的位数有问题,你试一下ShowMessage(SSStoStr(StrtoSSS('12345678')));
 
没错啊。是你开始就写成了 62345678 吧
 
问题已经解决,换了成了int64就可以了,大概是数字精度出了问题。
 

Similar threads

S
回复
0
查看
700
SUNSTONE的Delphi笔记
S
S
回复
0
查看
694
SUNSTONE的Delphi笔记
S
S
回复
0
查看
663
SUNSTONE的Delphi笔记
S
S
回复
0
查看
686
SUNSTONE的Delphi笔记
S
I
回复
0
查看
657
import
I
后退
顶部