相关疑难解决方法(0)

十进制类型的声明后缀

如果我想在代码中使用decimal-literal,我已经看到存在m后缀(其中m代表金钱).这是否适用于任何小数或存在更一般的分配(d代表double,即为了shure而不是正确的东西,虽然支持直接转换).

object decimalValue=2m;
Run Code Online (Sandbox Code Playgroud)

请注意,我以对象分配为例,因为在...的情况下

decimal decimalValue=2;
Run Code Online (Sandbox Code Playgroud)

...它隐含的明确,2应该通过编译器解释为十进制.

编辑: m似乎没问题,msdn使用它作为十进制类型的示例.

.net c#

105
推荐指数
2
解决办法
6万
查看次数

c#中1/252 = 0?

我正在做一个计算,在调试时我发现了这个:

double num = 1/252;
Run Code Online (Sandbox Code Playgroud)

当我调试它时,num被设置为零(0).是否有一个原因?我想把它作为实际计算.

谢谢

c#

18
推荐指数
3
解决办法
1345
查看次数

Ints和Doubles做分工

简短的版本:为什么我不必强制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?

.net c# double type-conversion

4
推荐指数
1
解决办法
320
查看次数

标签 统计

c# ×3

.net ×2

double ×1

type-conversion ×1