注册 登录
编程论坛 Delphi论坛

[求助]请教int与trunc的问题!!

无敌小胖牛 发布于 2007-09-22 14:25, 3814 次点击
各位大师!

有个程序用int就报错,用trunc就没报错。请问是什么原因。

报错的程序
y:=c*d/90000;
if y>int(y) then
N:=int(y)+1
else ----------------------〉报错的地方
N:=int(y);
test5.Text:=inttostr(N);

正常的程序
y:=c*d/90000;
if y>trunc(y) then
N:=trunc(y)+1
else
N:=trunc(y);
test5.Text:=inttostr(N);
24 回复
#2
缘吇弹2007-09-22 20:19

delphi里好像没前面那样表达的吧.
我想LZ之前是学VB的.

[此贴子已经被作者于2007-9-22 20:37:56编辑过]

#3
multiple19022007-09-22 20:43
好像符合pascal的语法……
#4
无敌小胖牛2007-09-22 22:09
哦?delphi是不是就是类pascal的语言表达方式呢?
#5
缘吇弹2007-09-22 23:33
delphi用的就是纯种的pascal语言.
#6
无敌小胖牛2007-09-23 22:16
请问,我问的问题能否得到您们的解答啊~~~?
#7
sky_yang_sky2007-09-24 16:45
test5.Text:=inttostr(N); 改為test5.Text:=floattostr(N);應可以了

#8
缘吇弹2007-10-06 09:31
以下是引用sky_yang_sky在2007-9-24 16:45:09的发言:
test5.Text:=inttostr(N); 改為test5.Text:=floattostr(N);應可以了

Delphi的语法要求很严格,这种方法不可以.不信你可以试试.

[此贴子已经被作者于2007-10-6 9:35:36编辑过]

#9
缘吇弹2007-10-06 09:34
以下是引用无敌小胖牛在2007-9-23 22:16:04的发言:
请问,我问的问题能否得到您们的解答啊~~~?

当然可以咯.论坛是交流的地方.

你上边的问题是数据类型转换的问题,学delphi的可不要忘了有一种叫variant的数据类型.

将你上边的 y,N:variant 即可.

#10
purana2007-10-06 09:36
学vb的也不要忘了有一种叫variant的数据类型
#11
缘吇弹2007-10-06 09:39
呵呵,没想到在这也能见到你.
#12
purana2007-10-06 09:44
无处不在.
#13
缘吇弹2007-10-06 09:48
感觉有时候的确是这样
#14
sky_yang_sky2007-10-06 10:01

to 缘吇弹
那種當然可以了,不信你自己試試看。

#15
缘吇弹2007-10-06 10:08
以下是引用sky_yang_sky在2007-10-6 10:01:13的发言:

to 缘吇弹
那種當然可以了,不信你自己試試看。

呵呵,我想问一下你把y定义成什么类型的变量?

#16
缘吇弹2007-10-06 10:19
要是定义为 y,N:real ,你那种方法是可以的.
#17
sky_yang_sky2007-10-06 11:59
int()函數是提取參數的整數部分,類型還是保留自己以前的類型,而這兒是浮點型,int()不是其它語言中的強制轉化為整數,這兒的y,N在邏輯上說應該就是REAL類型的。
在delphi中如果是integer類型的相除一般要用div而不是用‘/’運算符

[此贴子已经被作者于2007-10-6 13:28:39编辑过]

#18
缘吇弹2007-10-07 22:20
嗯.我也是刚接触delphi,以后多指教
#19
sky_yang_sky2007-10-08 08:51
to 缘吇弹
我也才接觸這塊,指教受不起。以後我們都互相多多學習

[此贴子已经被作者于2007-10-8 8:52:19编辑过]

#20
anthony6342007-10-08 23:13

delphi的类型兼容规则, 整数可以给实数赋值,但是反过来,实数是不能给证书赋值的。对于int,看下原型就知道了function Int(X: Extended): Extended; 出来的整数部分仍然是一个实数类型,而不是整数类型

[此贴子已经被作者于2007-10-8 23:15:11编辑过]

#21
anthony6342007-10-08 23:16
variant 变动类型,delphi也有的,变动类型可以给整数,实数,字符串,boolean。。这些赋值的。
#22
volte2007-10-11 12:41
delphi没有强制转换的概念!
#23
缘吇弹2007-10-11 22:18
以下是引用volte在2007-10-11 12:41:12的发言:
delphi没有强制转换的概念!

这也许是Delphi编译快的原因之一吧

#24
volte2007-10-12 08:54
回复:(缘吇弹)以下是引用volte在2007-10-11 12:41:...

可能是delphi所涉及到的库文件少,轻装上阵,一遍编译到头,
而c++所涉及的库比较多,
而且一般都是编译几遍。所以速度跟不上。

#25
缘吇弹2007-10-12 13:24
回复:(volte)回复:(缘吇弹)以下是引用volte在20...
嗯,你说的那原因的确很重要.
1