今天我遇到了一个问题,无法弄清楚这个简单陈述的问题是什么
我试过了
double d =1/4;
Run Code Online (Sandbox Code Playgroud)
预期ans对我而言0.25实际上是ans 0.0为什么呢?
如果语句是像这样的整数变量,我们应该怎么做
double a =(a-b)/(d+e);
Run Code Online (Sandbox Code Playgroud)
因为你所做的就是整数除法.无论你使用哪种类型,1 / 4总能给你0一个结果.
.NET有3种类型的划分.从7.7.2 Division operator
来自整数分部 ;
除法将结果舍入为零,结果的绝对值是小于两个操作数的商的绝对值的最大可能整数.
如果您希望0.25作为结果,则应将其中一个值定义为浮点.
你可以使用其中一个;
double d = 1d / 4d;
double d = 1d / 4;
double d = 1 / 4d;
Run Code Online (Sandbox Code Playgroud)
如果语句是像这样的整数变量,我们应该怎么做
double a =(ab)/(d + e);
我想你的a,b,d和e是整数,你应该使用这些再一个;
double a = (double)(a-b) / (double)(d+e);
double a = (a-b) / (double)(d+e);
double a = (double)(a-b) / (d+e);
Run Code Online (Sandbox Code Playgroud)