什么是EXCEL的CUMIPMT函数的math公式(它是如何计算的)?

什么是EXCEL的CUMIPMT函数的math公式(它是如何计算的)? 我想math计算它。 请帮忙

Excel中CUMIPMT的实现是不可能的,因为Excel不是开源的。

然而,无数的结果显示在Googlesearch中,例如Javascript中的这个实现 ,Javascript中的其他实现 ,或者PHP中的PHPExcel实现 。

最接近的结果可能是看Open Office的C ++实现 – 这与Excel的实现非常接近或相同。

它在Github上的OpenOffice存储库中可用

 double SAL_CALL AnalysisAddIn::getCumipmt( double fRate, sal_Int32 nNumPeriods, double fVal, sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType ) THROWDEF_RTE_IAE { double fRmz, fZinsZ; if( nStartPer < 1 || nEndPer < nStartPer || fRate <= 0.0 || nEndPer > nNumPeriods || nNumPeriods <= 0 || fVal <= 0.0 || ( nPayType != 0 && nPayType != 1 ) ) THROW_IAE; fRmz = GetRmz( fRate, nNumPeriods, fVal, 0.0, nPayType ); fZinsZ = 0.0; sal_uInt32 nStart = sal_uInt32( nStartPer ); sal_uInt32 nEnd = sal_uInt32( nEndPer ); if( nStart == 1 ) { if( nPayType <= 0 ) fZinsZ = -fVal; nStart++; } for( sal_uInt32 i = nStart ; i <= nEnd ; i++ ) { if( nPayType > 0 ) fZinsZ += GetZw( fRate, double( i - 2 ), fRmz, fVal, 1 ) - fRmz; else fZinsZ += GetZw( fRate, double( i - 1 ), fRmz, fVal, 0 ); } fZinsZ *= fRate; RETURN_FINITE( fZinsZ ); }