你一定得进来看看(有关日期运算) 没什么不解的,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 如何实现像QQ那样,在任务栏多个窗口 表格按某字段筛选后,再点击该字段内容,某些内容变成了筛选外条件外的内容,请各位指点一二!谢谢! 公司要求我用delphi设计监控软件的实时显示和控制模块。。。 放分啦接呀!!! 在WebSnap技术中如何让Edit控件放到我想要的模板位置上呢? Delphi 7 现在还有多少人在用? 动态创建组件级付值 女生真的不适合搞软件吗~? 多层问题,求助高手!!!急!!! 在win2000下的access数据库怎么访问之2 问一个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