Saf*_*ari 11 c++ math floating-point double visual-studio
可能重复:
C编程部门
可能我的问题非常简单和愚蠢.我想存储的分割的价值,特别是1 / x其中x是一个整数值.
int x = 17;
double result = 1/x;
Run Code Online (Sandbox Code Playgroud)
我尝试这样做,但我总是0.000000 ...试着输入一个固定在x中的值,例如1/17但总是得到相同的值..什么是错的?
Mik*_*ley 28
你正在进行整数除法.
尝试以下操作,它将按预期工作:
int x = 17;
double result = 1.0 / x;
Run Code Online (Sandbox Code Playgroud)
该类型的1在你有上述表达式是int,和的类型x为int.当你这样做时int / int,你会得到一个int.您需要至少有一种类型是浮点(float或double),以便进行浮点除法.
与数学不同,C++中的除法可以指截断的整数除法(你做了什么)或浮点除法(我在我的例子中做了什么).小心这个!
在我的例子中,明确我们拥有的是什么double / int -> double.