功能计算问题

时间:2016-10-11 23:34:31

标签: pascal calc

我对编程很新,我无法正确计算函数。它是一个使用此公式的复利计算器:

I = P(1 + i)n - P(p =委托人i =利息n =年)利率:=利息价值。

在pascal上我的功能看起来像这样,

function Compoundinterest(principal, years: integer; rate: double): double;

var
divrate: double;
interest: Double;


begin

divrate := rate/100;
interest := principal * power(1 + divrate, years) - Principal;
result := interest; 

end;

它编译得很好但是不会返回正确的值。

例如1000本金,3年内15%的利息返还:1.52087500000000E + 000。

我认为我在公式中做错了什么?

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

在pascal中,函数返回它在函数中设置的名称。例如:

function set_one(): integer;

begin
   set_one := 1
end;

在你的功能中,你应该替换

result := interest; 

Compoundinterest := interest;

或完成时显示(稍作修改):

function compound_interest(principal, years: integer; rate: double): double;
var
   divrate: double;

begin
   divrate := rate / 100.0;
   compound_interest := principal * power(1 + divrate, years) - principal;
end;

但是,这假设您可以访问power功能。为了访问power函数,程序必须在程序头下写入:uses math。此代码在Free Pascal Compiler 2.6.4版的编译上进行了测试。

有关Pascal的更多信息,请参阅:https://www.tutorialspoint.com/pascal/pascal_functions.htm

对于在线Pascal终端,请参阅: https://www.tutorialspoint.com/compile_pascal_online.php

答案 1 :(得分:0)

我在这里测试了Free Pascal 3.0.0并且它可以工作(5.20875。我添加了

 {$mode delphi}
 uses math; 

在您的代码和

之前
begin
 writeln(compoundinterest(1000,3,15));
end.

后。验证您是否也这样做,或者解释更多关于您使用的pascal系统的信息。

如果这只是某些计算的第一步,您可能也会对math unit financial functions

感兴趣

答案 2 :(得分:0)

您必须使用十进制格式设置 :0:2

  

试试这个

result := interest:0:2;

Counting the number of decimal places in pascal

var
divrate: double;
interest: Double;


begin

divrate := rate/100;
interest := principal * power(1 + divrate, years) - Principal;
result := interest:0:2; 

end;