lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] valyuta/007 0b887792 10/10: Change many more ledger


From: Greg Chicares
Subject: [lmi-commits] [lmi] valyuta/007 0b887792 10/10: Change many more ledger fields to cents
Date: Tue, 19 Apr 2022 19:00:43 -0400 (EDT)

branch: valyuta/007
commit 0b8877923e6e76d65eb1452207c1315cfcedbe4b
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Change many more ledger fields to cents
    
    These seem to be the last of the fields whose values are never read back
    from the ledger object into class AccountValue. There are about a dozen
    more that don't meet that criterion, and must be handled with care.
---
 ihs_acctval.cpp           | 44 ++++++++++++++++++-----------------
 ihs_avmly.cpp             |  6 ++---
 ledger_evaluator.cpp      | 59 +++++++++++++++++++++++++----------------------
 ledger_invariant_init.cpp |  8 +++----
 ledger_text_formats.cpp   | 46 ++++++++++++++++++------------------
 5 files changed, 84 insertions(+), 79 deletions(-)

diff --git a/ihs_acctval.cpp b/ihs_acctval.cpp
index bb30266d..c2489adc 100644
--- a/ihs_acctval.cpp
+++ b/ihs_acctval.cpp
@@ -498,8 +498,8 @@ void AccountValue::InitializeLife(mcenum_run_basis a_Basis)
     LMI_ASSERT(materially_equal(gpt7702_->raw_glp(), Irc7702_->glp()));
     LMI_ASSERT(materially_equal(gpt7702_->raw_gsp(), Irc7702_->gsp()));
 
-    InvariantValues().InitGLP = dblize(gpt7702_->rounded_glp());
-    InvariantValues().InitGSP = dblize(gpt7702_->rounded_gsp());
+    InvariantValues().InitGLP = centize(gpt7702_->rounded_glp());
+    InvariantValues().InitGSP = centize(gpt7702_->rounded_gsp());
 
     // This is notionally called once per *current*-basis run
     // and actually called once per run, with calculations suppressed
@@ -972,7 +972,7 @@ void AccountValue::InitializeSpecAmt()
 
     if(0 == Year)
         {
-        InvariantValues().InitTgtPrem = dblize(AnnualTargetPrem);
+        InvariantValues().InitTgtPrem = centize(AnnualTargetPrem);
         }
 
     // TODO ?? Perform specamt strategy here?
@@ -1011,8 +1011,8 @@ void AccountValue::set_list_bill_premium()
             ,Outlay_->er_premium_modes()[Year]
             ,base_specamt(Year)
             );
-        InvariantValues().ListBillPremium   = dblize(z);
-        InvariantValues().ErListBillPremium = dblize(z);
+        InvariantValues().ListBillPremium   = centize(z);
+        InvariantValues().ErListBillPremium = centize(z);
         }
     else
         {
@@ -1022,9 +1022,9 @@ void AccountValue::set_list_bill_premium()
             ,base_specamt(Year)
             ,term_specamt(Year)
             );
-        InvariantValues().EeListBillPremium = dblize(z.first);
-        InvariantValues().ErListBillPremium = dblize(z.second);
-        InvariantValues().ListBillPremium = dblize(z.first + z.second);
+        InvariantValues().EeListBillPremium = centize(z.first);
+        InvariantValues().ErListBillPremium = centize(z.second);
+        InvariantValues().ListBillPremium = centize(z.first + z.second);
         }
 }
 
@@ -1228,11 +1228,11 @@ void AccountValue::FinalizeYear()
     cv_7702 = std::max(cv_7702, HoneymoonValue);
 
     VariantValues().AcctVal     [Year] = dblize(total_av);
-    VariantValues().AVGenAcct   [Year] = dblize(AVGenAcct + AVRegLn + AVPrfLn);
-    VariantValues().AVSepAcct   [Year] = dblize(AVSepAcct);
+    VariantValues().AVGenAcct   [Year] = centize(AVGenAcct + AVRegLn + 
AVPrfLn);
+    VariantValues().AVSepAcct   [Year] = centize(AVSepAcct);
     VariantValues().DacTaxRsv   [Year] = DacTaxRsv;
     VariantValues().CSVNet      [Year] = dblize(csv_net);
-    VariantValues().CV7702      [Year] = dblize(cv_7702);
+    VariantValues().CV7702      [Year] = centize(cv_7702);
 
     InvariantValues().Dcv       [Year] = dblize(Dcv);
 
@@ -1245,7 +1245,7 @@ void AccountValue::FinalizeYear()
     TxSetTermAmt();
     // post values to LedgerVariant
     InvariantValues().TermSpecAmt   [Year] = dblize(TermSpecAmt);
-    VariantValues().TermPurchased   [Year] = dblize(TermDB);
+    VariantValues().TermPurchased   [Year] = centize(TermDB);
     // Add term rider DB
     VariantValues().BaseDeathBft    [Year] = centize(DBReflectingCorr);
     VariantValues().EOYDeathBft     [Year] = dblize(DBReflectingCorr + TermDB);
@@ -1253,15 +1253,15 @@ void AccountValue::FinalizeYear()
     // Monthly deduction detail
 
     VariantValues().COICharge         [Year] = centize(YearsTotalCoiCharge)   ;
-    VariantValues().RiderCharges      [Year] = dblize(YearsTotalRiderCharges) ;
+    VariantValues().RiderCharges      [Year] = centize(YearsTotalRiderCharges) 
;
     VariantValues().AVRelOnDeath      [Year] = YearsAVRelOnDeath              ;
     VariantValues().ClaimsPaid        [Year] = YearsGrossClaims               ;
     VariantValues().DeathProceedsPaid [Year] = YearsDeathProceeds             ;
     VariantValues().NetClaims         [Year] = YearsNetClaims                 ;
     VariantValues().NetIntCredited    [Year] = 
centize(YearsTotalNetIntCredited);
-    VariantValues().GrossIntCredited  [Year] = 
dblize(YearsTotalGrossIntCredited);
-    VariantValues().LoanIntAccrued    [Year] = 
dblize(YearsTotalLoanIntAccrued);
-    VariantValues().PolicyFee         [Year] = dblize(YearsTotalPolicyFee)    ;
+    VariantValues().GrossIntCredited  [Year] = 
centize(YearsTotalGrossIntCredited);
+    VariantValues().LoanIntAccrued    [Year] = 
centize(YearsTotalLoanIntAccrued);
+    VariantValues().PolicyFee         [Year] = centize(YearsTotalPolicyFee)    
;
     VariantValues().DacTaxLoad        [Year] = YearsTotalDacTaxLoad           ;
     VariantValues().SpecAmtLoad       [Year] = centize(YearsTotalSpecAmtLoad) ;
     VariantValues().PremTaxLoad       [Year] = PremiumTax_->ytd_load()        ;
@@ -1271,7 +1271,7 @@ void AccountValue::FinalizeYear()
         + YearsTotalGrossIntCredited
         - YearsTotalNetIntCredited
         ;
-    VariantValues().SepAcctCharges    [Year] = 
dblize(notional_sep_acct_charge);
+    VariantValues().SepAcctCharges    [Year] = 
centize(notional_sep_acct_charge);
 
     // Record dynamic interest rate in ledger object.
     //
@@ -1317,8 +1317,9 @@ void AccountValue::FinalizeYear()
         // exist only as an XSL-FO legacy, and the whole
         //   $git grep -h '\<Init[A-Z]' ledger_invariant.hpp
         // family should be eliminated.
-        InvariantValues().InitBaseSpecAmt = InvariantValues().SpecAmt[0];
-        InvariantValues().InitTermSpecAmt = InvariantValues().TermSpecAmt[0];
+        // CURRENCY !! KLUDGE 100.0 is a kludge to work around that kludge.
+        InvariantValues().InitBaseSpecAmt = InvariantValues().SpecAmt[0] * 
100.0;
+        InvariantValues().InitTermSpecAmt = InvariantValues().TermSpecAmt[0] * 
100.0;
 
         InvariantValues().GrossPmt  [Year]  = 0.0;
         InvariantValues().EeGrossPmt[Year]  = 0.0;
@@ -1340,7 +1341,8 @@ void AccountValue::FinalizeYear()
             }
         if(0 == Year)
             {
-            InvariantValues().InitPrem = InvariantValues().GrossPmt[Year];
+            // CURRENCY !! KLUDGE 100.0
+            InvariantValues().InitPrem = InvariantValues().GrossPmt[Year] * 
100.0;
             }
         LMI_ASSERT
             (materially_equal
@@ -1355,7 +1357,7 @@ void AccountValue::FinalizeYear()
             -   InvariantValues().NewCashLoan[Year]
             ;
 
-        InvariantValues().GptForceout[Year] = dblize(YearsTotalGptForceout);
+        InvariantValues().GptForceout[Year] = centize(YearsTotalGptForceout);
 
 // SOMEDAY !! Not yet implemented.
 //        InvariantValues().NaarForceout[Year] = 
InvariantValues().ErGrossPmt[Year];
diff --git a/ihs_avmly.cpp b/ihs_avmly.cpp
index 1eb241a3..85f961e6 100644
--- a/ihs_avmly.cpp
+++ b/ihs_avmly.cpp
@@ -2943,9 +2943,9 @@ void AccountValue::FinalizeMonth()
         {
         if(0 == Year && 0 == Month)
             {
-            InvariantValues().External1035Amount = dblize(External1035Amount);
-            InvariantValues().Internal1035Amount = dblize(Internal1035Amount);
-            InvariantValues().Dumpin = dblize(Dumpin);
+            InvariantValues().External1035Amount = centize(External1035Amount);
+            InvariantValues().Internal1035Amount = centize(Internal1035Amount);
+            InvariantValues().Dumpin = centize(Dumpin);
             }
 
         // TAXATION !! We could also capture MEC status on other bases here.
diff --git a/ledger_evaluator.cpp b/ledger_evaluator.cpp
index 91c04466..3292f663 100644
--- a/ledger_evaluator.cpp
+++ b/ledger_evaluator.cpp
@@ -436,6 +436,7 @@ format_map_t static_formats()
     std::pair<int,oenum_format_style> f3(0, oe_format_percentage);
     std::pair<int,oenum_format_style> f4(2, oe_format_percentage);
     std::pair<int,oenum_format_style> f5(0, oe_cents_as_dollars);
+    std::pair<int,oenum_format_style> f6(2, oe_cents_as_dollars);
 
     static format_map_t const format_map =
 // > Special Formatting for Scalar Items
@@ -473,17 +474,17 @@ format_map_t static_formats()
 // > Format as a number with thousand separators and two decimal places 
(#,###,###.00)
 // >
     ,{"CurrentCoiMultiplier"            , f2}
-    ,{"EeListBillPremium"               , f2}
-    ,{"ErListBillPremium"               , f2}
+    ,{"EeListBillPremium"               , f6}
+    ,{"ErListBillPremium"               , f6}
     ,{"GuarPrem"                        , f2}
     ,{"InforceTaxBasis"                 , f2}
     ,{"InforceTotalAV"                  , f2}
-    ,{"InitGLP"                         , f2}
-    ,{"InitGSP"                         , f2}
-    ,{"InitPrem"                        , f2}
+    ,{"InitGLP"                         , f6}
+    ,{"InitGSP"                         , f6}
+    ,{"InitPrem"                        , f6}
     ,{"InitSevenPayPrem"                , f2}
-    ,{"InitTgtPrem"                     , f2}
-    ,{"ListBillPremium"                 , f2}
+    ,{"InitTgtPrem"                     , f6}
+    ,{"ListBillPremium"                 , f6}
 // >
 // F1: zero decimals, commas
 // > Format as a number with thousand separators and no decimal places 
(#,###,###)
@@ -493,10 +494,10 @@ format_map_t static_formats()
     ,{"AvgFund"                         , f1}
     ,{"ChildRiderAmount"                , f1}
     ,{"CustomFund"                      , f1}
-    ,{"Dumpin"                          , f1}
+    ,{"Dumpin"                          , f5}
     ,{"EndtAge"                         , f1}
     ,{"ErNotionallyPaysTerm"            , f1}
-    ,{"External1035Amount"              , f1}
+    ,{"External1035Amount"              , f5}
     ,{"GenderBlended"                   , f1}
     ,{"GreatestLapseDuration"           , f1}
     ,{"GroupIndivSelection"             , f1}
@@ -511,10 +512,10 @@ format_map_t static_formats()
     ,{"InforceIsMec"                    , f1}
     ,{"InforceMonth"                    , f1}
     ,{"InforceYear"                     , f1}
-    ,{"InitBaseSpecAmt"                 , f1}
-    ,{"InitTermSpecAmt"                 , f1}
-    ,{"InitTotalSA"                     , f1}
-    ,{"Internal1035Amount"              , f1}
+    ,{"InitBaseSpecAmt"                 , f5}
+    ,{"InitTermSpecAmt"                 , f5}
+    ,{"InitTotalSA"                     , f5}
+    ,{"Internal1035Amount"              , f5}
     ,{"IsInforce"                       , f1}
     ,{"IsMec"                           , f1}
     ,{"IsSinglePremium"                 , f1}
@@ -611,9 +612,9 @@ format_map_t static_formats()
 // F1: zero decimals, commas
 // > Format as a number with thousand separators and no decimal places 
(#,###,##0)
 // >
-    ,{"AVGenAcct"                       , f1}
+    ,{"AVGenAcct"                       , f5}
     ,{"AVRelOnDeath"                    , f1}
-    ,{"AVSepAcct"                       , f1}
+    ,{"AVSepAcct"                       , f5}
     ,{"AcctVal"                         , f1}
     ,{"AccumulatedPremium"              , f1}
     ,{"AddonCompOnAssets"               , f1}
@@ -623,7 +624,7 @@ format_map_t static_formats()
     ,{"BaseDeathBft"                    , f5}
     ,{"COICharge"                       , f5}
     ,{"CSVNet"                          , f1}
-    ,{"CV7702"                          , f1}
+    ,{"CV7702"                          , f5}
     ,{"ClaimsPaid"                      , f1}
     ,{"Composite"                       , f1}
     ,{"DacTaxLoad"                      , f1}
@@ -639,12 +640,12 @@ format_map_t static_formats()
 //  ,{"ErMode"                          , f1} // Not numeric.
     ,{"ExpenseCharges"                  , f1}
     ,{"FundNumbers"                     , f1}
-    ,{"GptForceout"                     , f1}
-    ,{"GrossIntCredited"                , f1}
+    ,{"GptForceout"                     , f5}
+    ,{"GrossIntCredited"                , f5}
     ,{"GrossPmt"                        , f1}
     ,{"Loads"                           , f1}
     ,{"LoanInt"                         , f1}
-    ,{"LoanIntAccrued"                  , f1}
+    ,{"LoanIntAccrued"                  , f5}
     ,{"ModalMinimumPremium"             , f5}
     ,{"NaarForceout"                    , f1}
     ,{"NetClaims"                       , f1}
@@ -653,19 +654,19 @@ format_map_t static_formats()
     ,{"NetWD"                           , f1}
     ,{"NewCashLoan"                     , f1}
     ,{"Outlay"                          , f1}
-    ,{"PolicyFee"                       , f1}
+    ,{"PolicyFee"                       , f5}
     ,{"PrefLoanBalance"                 , f1}
     ,{"PremTaxLoad"                     , f1}
     ,{"RefundableSalesLoad"             , f1}
-    ,{"RiderCharges"                    , f1}
+    ,{"RiderCharges"                    , f5}
     ,{"Salary"                          , f1}
-    ,{"SepAcctCharges"                  , f1}
+    ,{"SepAcctCharges"                  , f5}
     ,{"SpecAmt"                         , f1}
     ,{"SpecAmtLoad"                     , f5}
     ,{"SpouseRiderAmount"               , f1}
     ,{"SurrChg"                         , f1}
-    ,{"TermPurchased"                   , f1}
-    ,{"TermSpecAmt"                     , f1}
+    ,{"TermPurchased"                   , f5}
+    ,{"TermSpecAmt"                     , f5}
     ,{"TotalLoanBalance"                , f1}
     };
 
@@ -689,6 +690,8 @@ ledger_evaluator Ledger::make_evaluator() const
 //  std::pair<int,oenum_format_style> f2(2, oe_format_normal);     // not used
     std::pair<int,oenum_format_style> f3(0, oe_format_percentage);
 //  std::pair<int,oenum_format_style> f4(2, oe_format_percentage); // not used
+    std::pair<int,oenum_format_style> f5(0, oe_cents_as_dollars);
+//  std::pair<int,oenum_format_style> f6(2, oe_cents_as_dollars);  // not used
 
     format_map_t format_map {static_formats()};
 
@@ -758,7 +761,7 @@ ledger_evaluator Ledger::make_evaluator() const
     for(int j = 0; j < max_duration; ++j)
         {
         PremiumLoad[j] = invar.GrossPmt[j] - curr.NetPmt[j];
-        MiscCharges[j] = curr.SpecAmtLoad[j] / 100.0 + curr.PolicyFee[j];
+        MiscCharges[j] = curr.SpecAmtLoad[j] + curr.PolicyFee[j];
         }
 
     vectors   ["PremiumLoad"] = &PremiumLoad;
@@ -769,7 +772,7 @@ ledger_evaluator Ledger::make_evaluator() const
     vectors   ["MiscCharges"] = &MiscCharges;
     title_map ["MiscCharges"] = "Miscellaneous\nCharges";
     mask_map  ["MiscCharges"] = "999,999,999";
-    format_map["MiscCharges"] = f1;
+    format_map["MiscCharges"] = f5;
 
     std::vector<double> NetDeathBenefit(curr.EOYDeathBft);
     NetDeathBenefit -= curr.TotalLoanBalance;
@@ -786,8 +789,8 @@ ledger_evaluator Ledger::make_evaluator() const
     title_map ["SupplDeathBft_Guaranteed"] = "Guar Suppl\nDeath\nBenefit";
     mask_map  ["SupplDeathBft_Current"   ] = "999,999,999";
     mask_map  ["SupplDeathBft_Guaranteed"] = "999,999,999";
-    format_map["SupplDeathBft_Current"   ] = f1;
-    format_map["SupplDeathBft_Guaranteed"] = f1;
+    format_map["SupplDeathBft_Current"   ] = f5;
+    format_map["SupplDeathBft_Guaranteed"] = f5;
 
     std::vector<double> SupplSpecAmt(invar.TermSpecAmt);
     vectors   ["SupplSpecAmt"            ] = &SupplSpecAmt;
diff --git a/ledger_invariant_init.cpp b/ledger_invariant_init.cpp
index 774ae9cc..4f9da0a9 100644
--- a/ledger_invariant_init.cpp
+++ b/ledger_invariant_init.cpp
@@ -158,8 +158,8 @@ void LedgerInvariant::Init(BasicValues const* b)
     // Scalable scalars.
 
     // SOMEDAY !! Things indexed with '[0]' should probably use inforce year 
instead.
-    InitBaseSpecAmt            = dblize(b->DeathBfts_->specamt()[0]);
-    InitTermSpecAmt            = TermSpecAmt[0];
+    InitBaseSpecAmt            = 100.0 * dblize(b->DeathBfts_->specamt()[0]);
+    InitTermSpecAmt            = 100.0 * TermSpecAmt[0];
     ChildRiderAmount           = b->yare_input_.ChildRiderAmount;
     SpouseRiderAmount          = b->yare_input_.SpouseRiderAmount;
 
@@ -747,8 +747,8 @@ void LedgerInvariant::ReInit(BasicValues const* b)
         }
     SpecAmt                    = dblize(b->DeathBfts_->specamt());
 
-    InitBaseSpecAmt            = dblize(b->DeathBfts_->specamt()[0]);
-    InitTermSpecAmt            = TermSpecAmt[0];
+    InitBaseSpecAmt            = 100.0 * dblize(b->DeathBfts_->specamt()[0]);
+    InitTermSpecAmt            = 100.0 * TermSpecAmt[0];
 
     IsMec                      = false;
     MecMonth                   = 11;
diff --git a/ledger_text_formats.cpp b/ledger_text_formats.cpp
index 80d88eb7..2955d5f6 100644
--- a/ledger_text_formats.cpp
+++ b/ledger_text_formats.cpp
@@ -264,20 +264,20 @@ std::string 
calculation_summary_formatter::format_as_html() const
             << "  <td align=\"right\" nowrap></td>\n"
             << "  <td align=\"left\"  nowrap></td>\n"
             << std::setprecision(2)
-            << "  <td align=\"right\" nowrap>" << invar_.InitGLP          << 
"</td>\n"
+            << "  <td align=\"right\" nowrap>" << invar_.InitGLP / 100.0  << 
"</td>\n"
             << "  <td align=\"left\"  nowrap>&nbsp;initial guideline level 
premium</td>\n"
             << "</tr>\n"
             << "<tr>\n"
             << std::setprecision(0)
-            << "  <td align=\"right\" nowrap>" << invar_.InitBaseSpecAmt  << 
"</td>\n"
+            << "  <td align=\"right\" nowrap>" << invar_.InitBaseSpecAmt / 
100.0 << "</td>\n"
             << "  <td align=\"left\"  nowrap>&nbsp;initial base specified 
amount</td>\n"
             << std::setprecision(2)
-            << "  <td align=\"right\" nowrap>" << invar_.InitGSP          << 
"</td>\n"
+            << "  <td align=\"right\" nowrap>" << invar_.InitGSP / 100.0  << 
"</td>\n"
             << "  <td align=\"left\"  nowrap>&nbsp;initial guideline single 
premium</td>\n"
             << "</tr>\n"
             << "<tr>\n"
             << std::setprecision(0)
-            << "  <td align=\"right\" nowrap>" << invar_.InitTermSpecAmt << 
"</td>\n"
+            << "  <td align=\"right\" nowrap>" << invar_.InitTermSpecAmt / 
100.0 << "</td>\n"
             << "  <td align=\"left\"  nowrap>&nbsp;initial term specified 
amount</td>\n"
             << std::setprecision(2)
             << "  <td align=\"right\" nowrap>" << invar_.InitSevenPayPrem << 
"</td>\n"
@@ -285,10 +285,10 @@ std::string 
calculation_summary_formatter::format_as_html() const
             << "</tr>\n"
             << "<tr>\n"
             << std::setprecision(0)
-            << "  <td align=\"right\" nowrap>" << invar_.InitBaseSpecAmt + 
invar_.InitTermSpecAmt << "</td>\n"
+            << "  <td align=\"right\" nowrap>" << (invar_.InitBaseSpecAmt + 
invar_.InitTermSpecAmt) / 100.0 << "</td>\n"
             << "  <td align=\"left\"  nowrap>&nbsp;initial total specified 
amount</td>\n"
             << std::setprecision(2)
-            << "  <td align=\"right\" nowrap>" << invar_.InitTgtPrem      << 
"</td>\n"
+            << "  <td align=\"right\" nowrap>" << invar_.InitTgtPrem / 100.0 
<< "</td>\n"
             << "  <td align=\"left\"  nowrap>&nbsp;initial target 
premium</td>\n"
             << "</tr>\n"
             << "</table>\n"
@@ -360,25 +360,25 @@ std::string 
calculation_summary_formatter::format_as_tsv() const
             }
         oss
             << std::setprecision(2)
-            << invar_.InitGLP
+            << invar_.InitGLP / 100.0
             << "\tinitial guideline level premium\n"
             << std::setprecision(2)
-            << invar_.InitGSP
+            << invar_.InitGSP / 100.0
             << "\tinitial guideline single premium\n"
             << std::setprecision(2)
             << invar_.InitSevenPayPrem
             << "\tinitial seven-pay premium\n"
             << std::setprecision(2)
-            << invar_.InitTgtPrem
+            << invar_.InitTgtPrem / 100.0
             << "\tinitial target premium\n"
             << std::setprecision(0)
-            << invar_.InitBaseSpecAmt
+            << invar_.InitBaseSpecAmt / 100.0
             << "\tinitial base specified amount\n"
             << std::setprecision(0)
-            << invar_.InitTermSpecAmt
+            << invar_.InitTermSpecAmt / 100.0
             << "\tinitial term specified amount\n"
             << std::setprecision(0)
-            << invar_.InitBaseSpecAmt + invar_.InitTermSpecAmt
+            << (invar_.InitBaseSpecAmt + invar_.InitTermSpecAmt) / 100.0
             << "\tinitial total specified amount\n"
             ;
         }
@@ -461,10 +461,10 @@ void PrintCellTabDelimited
     os << "Gender\t\t"            << Invar.value_str("Gender"         ) << 
'\n';
     os << "Smoker\t\t"            << Invar.value_str("Smoker"         ) << 
'\n';
     os << "IssueAge\t\t"          << Invar.value_str("Age"            ) << 
'\n';
-    os << "InitBaseSpecAmt\t\t"   << Invar.value_str("InitBaseSpecAmt") << 
'\n';
-    os << "InitTermSpecAmt\t\t"   << Invar.value_str("InitTermSpecAmt") << 
'\n';
+    os << "InitBaseSpecAmt\t\t"   << Invar.value_str("InitBaseSpecAmt", 100.0) 
<< '\n';
+    os << "InitTermSpecAmt\t\t"   << Invar.value_str("InitTermSpecAmt", 100.0) 
<< '\n';
     double total_spec_amt = Invar.InitBaseSpecAmt + Invar.InitTermSpecAmt;
-    os << "  Total:\t\t"     << value_cast<std::string>(total_spec_amt) << 
'\n';
+    os << "  Total:\t\t"     << value_cast<std::string>(total_spec_amt / 
100.0) << '\n';
     os << "PolicyMktgName\t\t"    << Invar.value_str("PolicyMktgName" ) << 
'\n';
     os << "PolicyForm\t\t"        << Invar.value_str("PolicyForm"     ) << 
'\n';
     os << "UWClass\t\t"           << Invar.value_str("UWClass"        ) << 
'\n';
@@ -573,17 +573,17 @@ void PrintCellTabDelimited
 
         os << Curr_.value_str("PremTaxLoad"           ,j) << '\t';
         os << Curr_.value_str("DacTaxLoad"            ,j) << '\t';
-        os << Curr_.value_str("PolicyFee"             ,j) << '\t';
+        os << Curr_.value_str("PolicyFee"             ,j, 100.0) << '\t';
         os << Curr_.value_str("SpecAmtLoad"           ,j, 100.0) << '\t';
         os << Invar.value_str("AnnualFlatExtra"       ,j) << '\t';
         os << Curr_.value_str("COICharge"             ,j, 100.0) << '\t';
-        os << Curr_.value_str("RiderCharges"          ,j) << '\t';
+        os << Curr_.value_str("RiderCharges"          ,j, 100.0) << '\t';
         os << "0\t"; // obsolete
-        os << Curr_.value_str("SepAcctCharges"        ,j) << '\t';
+        os << Curr_.value_str("SepAcctCharges"        ,j, 100.0) << '\t';
 
         os << Curr_.value_str("AnnSAIntRate"          ,j) << '\t';
         os << Curr_.value_str("AnnGAIntRate"          ,j) << '\t';
-        os << Curr_.value_str("GrossIntCredited"      ,j) << '\t';
+        os << Curr_.value_str("GrossIntCredited"      ,j, 100.0) << '\t';
         os << Curr_.value_str("NetIntCredited"        ,j, 100.0) << '\t';
 
         os << Guar_.value_str("AcctVal"               ,j) << '\t';
@@ -745,13 +745,13 @@ void PrintRosterTabDelimited
         << Invar.value_str("Salary"               ,d) << '\t'
         << Invar.value_str("SpecAmt"              ,d) << '\t'
         << Invar.value_str("TermSpecAmt"          ,d) << '\t'
-        << Invar.value_str("InitTgtPrem"            ) << '\t'
+        << Invar.value_str("InitTgtPrem"            , 100.0) << '\t'
         << Invar.value_str("ModalMinimumPremium"  ,d, 100.0) << '\t'
         << Invar.value_str("EeModalMinimumPremium",d, 100.0) << '\t'
         << Invar.value_str("ErModalMinimumPremium",d, 100.0) << '\t'
-        << Invar.value_str("ListBillPremium"        ) << '\t'
-        << Invar.value_str("EeListBillPremium"      ) << '\t'
-        << Invar.value_str("ErListBillPremium"      ) << '\t'
+        << Invar.value_str("ListBillPremium"        , 100.0) << '\t'
+        << Invar.value_str("EeListBillPremium"      , 100.0) << '\t'
+        << Invar.value_str("ErListBillPremium"      , 100.0) << '\t'
         << "'" << Invar.ListBillDate                  << "'\t"
         << Invar.EeMode                           [d] << '\t'
         << Invar.ErMode                           [d] << '\t'



reply via email to

[Prev in Thread] Current Thread [Next in Thread]