用两个变量存double型的值,相乘后的值保留三位小数,问题是:用变量的时候得到的值不能四舍五入,而用数的时候就可以,例子如下,很奇怪,大家可以试一下:
procedure TForm1.Button1Click(Sender: TObject);
var xs,yg,z:double;
begin
xs:=0.022;
yg:=1.25;
z:=round(xs*yg*power(10,3))/power(10,3);
showmessage(floattostr(z));
end; 这个得到是0.027\\\\\\\\\\\\\\\\\\\\\\\\\
procedure TForm1.Button1Click(Sender: TObject);
var z:double;
begin
z:=round(1.25*0.022*power(10,3))/power(10,3);
showmessage(floattostr(z));
end; 这个得到是0.028
procedure TForm1.Button1Click(Sender: TObject);
var xs,yg,z:double;
begin
xs:=0.022;
yg:=1.25;
z:=round(xs*yg*power(10,3))/power(10,3);
showmessage(floattostr(z));
end; 这个得到是0.027\\\\\\\\\\\\\\\\\\\\\\\\\
procedure TForm1.Button1Click(Sender: TObject);
var z:double;
begin
z:=round(1.25*0.022*power(10,3))/power(10,3);
showmessage(floattostr(z));
end; 这个得到是0.028
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货