2021-06-22

iOS 等額本息的方式锤岸,計算月利率阶界、日利率摔敛、年利率

/**
 * calculateRate:類excel中的RATE函數(shù)旺入,計算結(jié)果值為月利率场躯,年華利率 需*12期. 
 * @param nper
 *            為總投資期,即該項投資的付款期總數(shù)湾揽。
 * @param pmt
 *            為各期付款額瓤逼,其數(shù)值在整個投資期內(nèi)保持不變。通常 pmt 包括本金和利息库物,但不包括其他費(fèi)用或稅金霸旗。如果忽略了
 *            pmt,則必須包含 fv 參數(shù)戚揭。
 * @param pv
 *            為現(xiàn)值诱告,即從該項投資開始計算時已經(jīng)入帳的款項,或一系列未來付款當(dāng)前值的累積和民晒,也稱為本金精居。
 * @param fv
 *            為未來值,或在最后一次付款后希望得到的現(xiàn)金余額潜必,如果省略 fv靴姿,則假設(shè)其值為零,也就是一筆貸款的未來值為零磁滚。
 * @param type
 *            數(shù)字 0 或 1佛吓,用以指定各期的付款時間是在期初還是期末宵晚。 0或省略-期末|| 1-期初
 * @param guess
 *            預(yù)期利率。 如果省略預(yù)期利率维雇,則假設(shè)該值為 10%淤刃。
 * @return
 * @since JDK 1.6
 */

- (double) calculateRate:(double)nper pmt:(double) pmt pv:(double) pv fv:(double) fv type:(double) type guess:(double) guess
{
    //FROM MS http://office.microsoft.com/en-us/excel-help/rate-HP005209232.aspx
    int FINANCIAL_MAX_ITERATIONS = 20;//Bet accuracy with 128
    double FINANCIAL_PRECISION = 0.0000001;//1.0e-8

    double y, y0, y1, x0, x1 = 0, f = 0, i = 0;
    double rate = guess;
    if (fabs(rate) < FINANCIAL_PRECISION) {
            y = pv * (1 + nper * rate) + pmt * (1 + rate * type) * nper + fv;
        } else {
            f = exp (nper * log(1 + rate));
            y = pv * f + pmt * (1 / rate + type) * (f - 1) + fv;
    }
    y0 = pv + pmt * nper + fv;
    y1 = pv * f + pmt * (1 / rate + type) * (f - 1) + fv;

    i = x0 = 0.0;
    x1 = rate;
    
    while ((fabs(y0 - y1) > FINANCIAL_PRECISION) && (i < FINANCIAL_MAX_ITERATIONS)) {
            rate = (y1 * x0 - y0 * x1) / (y1 - y0);
            x0 = x1;
            x1 = rate;

    if (fabs(rate) < FINANCIAL_PRECISION) {
            y = pv * (1 + nper * rate) + pmt * (1 + rate * type) * nper + fv;
        } else {
            f = exp(nper * log(1 + rate));
            y = pv * f + pmt * (1 / rate + type) * (f - 1) + fv;
        }
        y0 = y1;
        y1 = y;
        ++i;
    }
    
    return rate;
}

/**
     * @param nper
     *            為總投資期,即該項投資的付款期總數(shù)吱型。
     * @param pmt
     *            為各期付款額逸贾,其數(shù)值在整個投資期內(nèi)保持不變。通常 pmt 包括本金和利息津滞,但不包括其他費(fèi)用或稅金耕陷。如果忽略了
     *            pmt,則必須包含 fv 參數(shù)据沈。
     * @param pv
     *            為現(xiàn)值,即從該項投資開始計算時已經(jīng)入帳的款項饺蔑,或一系列未來付款當(dāng)前值的累積和锌介,也稱為本金。
     * @return
     * @since JDK 1.6
     */
- (double)simpleCalculateRate:(double)nper pmt:(double) pmt pv:(double) pv
{
 
    double fv = 0;

    //0或省略-期末支付
    double type = 0;

    //如果省略預(yù)期利率猾警,則假設(shè)該值為 10%孔祸。
    double guess = 0.1;
//    得到的是月利率,*12得到年利率
    double rate = [self calculateRate:nper pmt:pmt pv:pv fv:fv type:type guess:guess];
    return rate*12*100;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末发皿,一起剝皮案震驚了整個濱河市崔慧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌穴墅,老刑警劉巖惶室,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玄货,居然都是意外死亡皇钞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門松捉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夹界,“玉大人,你說我怎么就攤上這事隘世】墒粒” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵丙者,是天一觀的道長复斥。 經(jīng)常有香客問我,道長蔓钟,這世上最難降的妖魔是什么永票? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上侣集,老公的妹妹穿的比我還像新娘键俱。我一直安慰自己,他們只是感情好世分,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布编振。 她就那樣靜靜地躺著,像睡著了一般臭埋。 火紅的嫁衣襯著肌膚如雪踪央。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天瓢阴,我揣著相機(jī)與錄音畅蹂,去河邊找鬼。 笑死荣恐,一個胖子當(dāng)著我的面吹牛液斜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叠穆,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼少漆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了硼被?” 一聲冷哼從身側(cè)響起示损,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嚷硫,沒想到半個月后检访,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡仔掸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年烛谊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘉汰。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡丹禀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鞋怀,到底是詐尸還是另有隱情双泪,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布密似,位于F島的核電站焙矛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏残腌。R本人自食惡果不足惜村斟,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一贫导、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蟆盹,春花似錦孩灯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寨昙,卻和暖如春讥巡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舔哪。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工欢顷, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捉蚤。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓吱涉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親外里。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容