!!!为什么??? Edit11.Text:=IntToStr(Round(2.5)); 在我的电脑上算出的答案是 2 !!!(50分)

  • 主题发起人 chenjianzu
  • 开始时间
C

chenjianzu

Unregistered / Unconfirmed
GUEST, unregistred user!
!!!为什么??? Edit11.Text:=IntToStr(Round(2.5))
在我的电脑上算出的答案是 2 !!!
 

喜研

Unregistered / Unconfirmed
GUEST, unregistred user!
这是银行家算法
如果inttostr(round(3.5))就应该是4了

你可以用roundto
和SetRoundMode
来实现你所要的看看帮助吧
 
C

chenjianzu

Unregistered / Unconfirmed
GUEST, unregistred user!
喜研,请问什么叫银行家的算法呢?
而且经过试验我发觉 inttostr(round(3.5)) =4
inttostr(round(4.5)) =4
inttostr(round(5.5)) =6
inttostr(round(6.5)) =6

为什么呢?
 

来如风

Unregistered / Unconfirmed
GUEST, unregistred user!
Round(2.5)这样的结果如果.5前是奇数的则进一
 
C

chenjianzu

Unregistered / Unconfirmed
GUEST, unregistred user!
来如风,为什么偶数不进位呢?
 
C

chenjianzu

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠位,请教了!!!
 
L

lichdr

Unregistered / Unconfirmed
GUEST, unregistred user!
你用2.50001看看。
統計學上說這種算法誤差最小。
 
C

chenjianzu

Unregistered / Unconfirmed
GUEST, unregistred user!
lichdr,不行,我计算出的结果是 2.5 要对其进行四舍五入!
 
H

hongxing_dl

Unregistered / Unconfirmed
GUEST, unregistred user!
原来还没发现这个问题,今天一试果然有这种情况!!
换成SQL好了:
select round(2.5,0) from table
 
C

chenjianzu

Unregistered / Unconfirmed
GUEST, unregistred user!
我倒!!!
我是用DELPHI求出一个结果,然后四舍五入!
不是用SQL啊????
 
C

chenjianzu

Unregistered / Unconfirmed
GUEST, unregistred user!
正确写法:
SetRoundMode(rmUp);
Edit11.Text:=FloatToStr(RoundTo(2.5,0));
Edit12.Text:=FloatToStr(RoundTo(3.5,0));

谢谢 喜研
 
G

gxlyluoyu

Unregistered / Unconfirmed
GUEST, unregistred user!
如果你想使用四舍五入的方法必须要用RoundTo(const AValue: Double
const ADigit: TRoundToRange): Double而不是用Round(X: Extended): Int64。后者是返回一个整数。如果你用RoundTo()的就会得到你想要的结果了举几个例子给你看:
RoundTo(1234567, 3) 1234000
RoundTo(1.234, -2) 1.23
RoundTo(1.235, -2) 1.24
RoundTo(1.245, -2) 1.24
知道怎么做了吧? 还有你的转换函数应该是FloatToStr()。
对了记得在Uses 里引用其所长 Math 单元喔。
 
C

chenjianzu

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢 gxlyluoyu 交个朋友好吗? chenjianzu@163.net QQ:40507752
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部