double d= 5.0 / 24;
double m = Math.Round(d, 1);
然後 5+m
5怎么换算成5.0,那个5+m的5代表什么呢?
@edsonwu: 5是整數到double 的轉換
int l1 = 5;
double m = double.Parse(l1.ToString());
@無限遐想: m就是 最好的天數,比如0.2
最後 再 加起來 ,就是你需要的哦
5/24吧
把小时转换成天,除以24小时。
关键是用语法怎么实现
private double GetDecDateTime(DateTime datetime) { TimeSpan oneday = new TimeSpan(1, 0, 0, 0); return datetime.TimeOfDay.Ticks / oneday.Ticks; }
这里我使用了TICKS这个单位,是最精确的了,你可以根据具体情况进行修改,比如使用毫秒、秒、分、时等(TimeSpan有对应的属性)。
private double GetDecDateTime(TimeSpan duration) { TimeSpan oneday = new TimeSpan(1, 0, 0, 0); return duration.Ticks / oneday.Ticks; }
这个方案里的duration是需要你进行转换的(数据库里存储的天、小时等数据),当然,你也可以直接把数据库里的数据以参数的形式传递给函数,只要做简单的修改就好(TimeSpan有几个重载的构造函数)。
当然,最简单的办法,莫过于直接使用TimeSpan对象的TotalDays属性。
用TimeSpan.TotalDays也是很好的做法,如果组成比较多又有年又有月,有分有秒,用timespan会简单很多。
两个数相除,结果可以是:
商和余数,或者是 一个小数形式表示的数据。
.NET里,两个数相除后,最后的数是以两个数中精度最大的为准进行输出。
也就是说,1/2应该是0.5,但因为两个书都是整数,输出的时候会对0.5进行转换((int)0.5),这个的结果是0。
.Net里,要求两个整数相除的商就用“/”,要求余数则用“%”,如果要求更精确的数则用小数:
int days=3; int hous=5; double result = days + hours * 1.0 / 24;//或者days + hours / 24.0
很强,
int days = 3; int hours = 5; //你的错误做法: //decimal result = days + hours / 24; //正确做法 decimal result = days + hours / 24m;
在C#中一个int除以另外一个int,得到的还是一个int,因此5/24的结果是0. 而5/24m是一个int除以另外一个decimal,得到的是decimal类型。
很强,
int days=3;
int hours=5;
int offset=days*24+hours;
int res=offset/24+offset%24;
实现的方法很多,看你如何去定制自己的换算格式,同意楼上各位意见。。。
double newdate=double.parse(5)/24+3;
double result = (day * 24m + hour) / 24m