简短的版本:为什么我不必强制60和int,进入一个double,这样如果我关心小数部分,我可以使用另一个double的除法?
长版本:我的老板用一行代码打电话给我.我测试了它并且它工作得很好,但他认为我有一个等待发生的错误.
int durationinseconds = 61; // This is actually filled from a double.tryparse
// from a string value out of an xml doc.
int durationinminutes = (int)Math.Ceiling((double)durationinseconds / 60);
Run Code Online (Sandbox Code Playgroud)
我的代码应该从XML文档获得#秒,然后计算出分钟数,总是向上舍入.60秒= 1分钟,61秒= 2分钟等
我已经测试了我的代码,但是他确认"/ 60"部分应该是"/ 60.0".
我用0,1,2,59,60,61,119,120,121,599,600,601等测试了我的代码,它总能正常工作.
在我为自己辩护之前,我大多理解为什么他认为我需要强制60为小数,因为他认为如果我使用int值,那么double/int将导致一个整数值,从而有效地降低了分数部分.
但是,这不会发生,我无法解释原因.所以,这是我的问题:如果我想使用小数部分,为什么我不能在分割双倍时使用60.0?