を返す:私はrate(60, -6000, 120000)
ような何かを呼び出すとhttp://pastebin.com/Sd9WKZFrPHPExcel基づく関数のRATE()私はこのコードを持っているNAN()
それは私にNAN
結果を返しますが、MSエクセル上の同じ機能は私に0,04678...
を返します。私は-5000、-4000、-3000、-2000を試してみても同じ問題があります。
私はコードをデバッグすると、私は8/9の反復について、行番号29はNAN
の結果を返し始め、他のすべての結果はNAN
にもなります。
しかし、私がrate(60, -1000, 120000)
のようなものを呼び出すと、私はfloat -0.02044...
のMS Excelと全く同じ結果を返します。
私はすでにBCMath機能に数学の計算のすべてを変換するためにしようと試みているが、この方法は、-6000の結果が間違っている(-1.0427 ...ではなく0,04678の...)が、使用して - 1000結果が正しい、Excelの結果と一致する。
正しく動作させる方法はありますか?
事前に感謝していただきありがとうございます。
のみ3回の反復をとり、これは計算として、主に見えます問題。 - $ rateが負になる可能性がありますので、log()は29行目で定義されていませんか? - 角括弧は正しく設定されていますか? – worenga
こんにちは@mightyuhu、それはうまく動作-1000を使用して原因sintaxeエラーはありません。同時に、安定したphpexcelからの関数です。とにかくありがとう。 – slinstj
@sidtj @mightyuhuが正しく、 'rate(60、-6000、120000)'はRate <1の中間結果を生成します(これは8/9回目の繰り返しですでに識別されています)。あなたのアルゴリズムに取り組む必要があります –