你一定得进来看看(有关日期运算) 没什么不解的,TDatetime其实是个Double 类型,他的整数部分是从 1899年12月30日开始至今的天数(ms 的这个类型是从1990/1/1开始的,他们差2天)小数部分是 1/(24*60*60) 乘以 今天过去的秒数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没什么奇怪的,你在Button2的单击事件中加入showmessage(FloatToStr(datetimepicker1.Date)+#13+FloatToStr(datetimepicker2.Date));看看就知道是怎么回事了。 我的疑问在trunc那里,大家试了没有??? 试过再说行吗?button1 的显示结果为 1.00button2 的结果为 0而button3的结果为 1 button1的显示结果表明 date1-date2 为 1.00而button2 显示的结果疑点就是: 如果 trunc(1.00)的话,结果为 1,而这里却为0。 forgot(让一切随风) 的答案我看了,结果为date1:37406.9012268518 date2:37405.9012434028但是 double 后的小数是两位 ,分别为 37406.90 和 37405.90trunc的结果为什么会不一样???? Delphi 也用实型数表示日期和时间数据。但为了更准确起见,Delphi 特别定义了TDateTime 数据类型,这是一个浮点类型,因为这个类型必须足够宽,使变量能容纳年、月、日、时、分和秒、甚至毫秒。日期值按天计数,从1899-12-30开始,放在TDateTime 类型的整数部分;时间值则位于十进制数的小数部分。TDateTime 不是编译器可直接识别的预定义类型,它在System单元定义:type TDateTime = type Double; datetimepicker1.date-datetimepicker2.date=37406.9012268518-37405.9012434028=?=0.99所以。button2.click=0。而button3.click当然等于1了 那为何 button1 =(d1-d2)=1.00 ???而 button2 = trunc(d1-d2) 却等于 0???我实在拐不过来弯,大家再来点醒一下我这梦中人吧 format('%f',[i])是对i四舍五入取2位小数,例如format('%f',[0.995])=1.00trunc(i)是取接近0的最大整数,例如trunc(0.995)=0 紧急求救:需要用SaveDialog备份文件夹,所以不需要该对话框的文件名和文件类型框,能否将它禁掉或不显示. 我调用自己编写的DLL库中的函数为什么会出现地址异常???? 关于邮件编码的问题 在VeryCD注册的兄弟,给个注册序列号吧,谢谢 如何卸载ADO? 在DOS下使用DCC32编译出现的问题 www.programfan.com 这里不错哦! 如何写一个Print函数 比较菜的问题!判断一个字符在一个字符串中的函数是什么? 高手们请赐教! 问一个SQL问题 大家讨论一下在filestream中删除记录的好办法
button2 的结果为 0
而button3的结果为 1 button1的显示结果表明 date1-date2 为 1.00
而button2 显示的结果疑点就是: 如果 trunc(1.00)的话,结果为 1,而这里却为0。
forgot(让一切随风) 的答案我看了,
结果为date1:37406.9012268518
date2:37405.9012434028但是 double 后的小数是两位 ,分别为 37406.90 和 37405.90trunc的结果为什么会不一样????
TDateTime = type Double;
37406.9012268518-37405.9012434028=?=0.99
所以。button2.click=0。
而button3.click
当然等于1了
trunc(i)是取接近0的最大整数,例如trunc(0.995)=0