为什么要打印1 ???它驱使我INSANE。应该是打印1.01005016708
我正在使用流血的dev c ++来编译
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
double rate = .05;
double time = (1/5);
double p = exp(rate*time);
cout<<p<<endl;
system("PAUSE");
return 0;
}
答案 0 :(得分:3)
1/5是整数除法 - 操作数都是整数,因此你得到0。
使用1.0 / 5,确保至少有一个操作数 double &amp;并且您的除法将以浮点双精度执行。
两个整数操作数,将为您提供整数除法。
答案 1 :(得分:1)
double time = (1/5);
应该是
double time = (1.0/5);
否则,由于整数除法截断,time
将获得0.0
。因此,p = exp(0.0)
将为1.
答案 2 :(得分:0)
对不起,这不是你问题的答案,但托马斯和塔科普得到了这个。
你应该寻找一个新的IDE来使用,我自己切换到code :: blocks,我觉得它很棒,但这里有一些原因:
自2005年以来,Dev-C ++尚未更新,目前尚未维护。该软件非常多。在我写作的时候 有340个已知的错误永远无法解决。
很难获得帮助,因为编程社区已经转向更新的软件。
Dev-C ++缺乏更现代化解决方案中的功能。代码完成,智能感知和适当的调试工具(在 其他)没有提供。这些工具可以大大改善 有经验的程序员的工作流程和效率,并可能有助于 学习初学者。
与更现代的解决方案相比,错误消息和解决这些问题所需的步骤记录很少,而且大多数都是如此 程序员已经从Dev-C ++转移到它可能很困难(如果没有 找不到任何能够帮助你的人。有些问题可能会 根本无法解决。 Dev-C ++附带的编译器是 非常过时,而且越野车。过时的编译器可能导致错误 和低效的代码,可能会损害学习过程 初学者。
- 醇>
现代图书馆不再支持所提供的“devpack”系统。在Dev-C ++中使用外部库可能会令人困惑 对于期待这个简单系统的初学者来说,这是一个艰难的过程 为他们处理它。有很多现代,免费提供 没有遭遇同样问题的替代方案,它就是 简直荒谬的是,任何初学者都应该最终使用这样的 作为Dev-C ++的可怕而过时的工具。
另外,你可以摆脱那个可怜的system("PAUSE");