lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] valyuta/002 540c4f3 11/65: currency(0.0)


From: Greg Chicares
Subject: [lmi-commits] [lmi] valyuta/002 540c4f3 11/65: currency(0.0)
Date: Wed, 16 Sep 2020 16:55:13 -0400 (EDT)

branch: valyuta/002
commit 540c4f385ff7558a9329c62b5b929be1203bb0d2
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    currency(0.0)
---
 accountvalue.cpp | 14 ++++++------
 group_values.cpp |  2 +-
 ihs_acctval.cpp  | 30 ++++++++++++-------------
 ihs_avmly.cpp    | 68 ++++++++++++++++++++++++++++----------------------------
 ihs_avsolve.cpp  |  6 ++---
 ihs_avstrtgy.cpp | 10 ++++-----
 ihs_basicval.cpp |  2 +-
 solve.cpp        |  4 ++--
 8 files changed, 68 insertions(+), 68 deletions(-)

diff --git a/accountvalue.cpp b/accountvalue.cpp
index d457372..d39b21f 100644
--- a/accountvalue.cpp
+++ b/accountvalue.cpp
@@ -184,7 +184,7 @@ currency AccountValue::RunAllApplicableBases()
         ,mce_sep_full
         );
 
-    currency z = currency(0);
+    currency z = currency(0.0);
     if(Solving)
         {
         z = Solve();
@@ -331,8 +331,8 @@ void AccountValue::DoYear
 
     YearsCorridorFactor = BasicValues::GetCorridorFactor()[Year];
 
-    GrossPmts  .assign(12, currency(0));
-    NetPmts    .assign(12, currency(0));
+    GrossPmts  .assign(12, currency(0.0));
+    NetPmts    .assign(12, currency(0.0));
 
     // IHS !! Strategy here?
 
@@ -441,7 +441,7 @@ inline int AccountValue::MonthsToNextModalPmtDate() const
 // Set specamt according to selected strategy, in every year.
 void AccountValue::PerformSpecAmtStrategy()
 {
-    currency SA = currency(0);
+    currency SA = currency(0.0);
     switch(yare_input_.SpecifiedAmountStrategy[0])
         {
         case mce_sa_input_scalar:
@@ -766,7 +766,7 @@ void AccountValue::TxSetDeathBft()
             // Option 2: specamt plus AV, or corridor times AV if greater.
             // Negative AV doesn't decrease death benefit.
             deathbft = std::max
-                (ActualSpecAmt + std::max(currency(0), AV)
+                (ActualSpecAmt + std::max(currency(0.0), AV)
                 ,corr
                 );
             break;
@@ -988,7 +988,7 @@ void AccountValue::TxTakeLoan()
     double IntAdj = std::pow((1.0 + YearsRegLnIntDueRate), 12 - Month);
     IntAdj = (IntAdj - 1.0) / IntAdj;
     MaxLoan *= 1.0 - IntAdj;
-    MaxLoan = std::max(currency(0), MaxLoan);
+    MaxLoan = std::max(currency(0.0), MaxLoan);
     MaxLoan = round_loan()(MaxLoan);
 
     // IHS !! Preferred loan calculations would go here: implemented in lmi.
@@ -1066,7 +1066,7 @@ double AccountValue::GetProjectedCoiChargeInforce() const
 double AccountValue::GetSepAcctAssetsInforce() const
     {return 0.0;}
 currency AccountValue::IncrementBOM(int, int, double)
-    {return currency(0);}
+    {return currency(0.0);}
 void   AccountValue::IncrementEOM(int, int, currency, currency)
     {return;}
 void   AccountValue::IncrementEOY(int)
diff --git a/group_values.cpp b/group_values.cpp
index e41aca9..81987cb 100644
--- a/group_values.cpp
+++ b/group_values.cpp
@@ -419,7 +419,7 @@ census_run_result run_census_in_parallel::operator()
                     ;
             for(int month = inforce_month; month < 12; ++month)
                 {
-                currency assets = currency(0);
+                currency assets = currency(0.0);
 
                 // Get total case assets prior to interest crediting because
                 // those assets may determine the M&E charge.
diff --git a/ihs_acctval.cpp b/ihs_acctval.cpp
index a737fff..e4cefce 100644
--- a/ihs_acctval.cpp
+++ b/ihs_acctval.cpp
@@ -240,7 +240,7 @@ currency AccountValue::RunOneBasis(mcenum_run_basis a_Basis)
             ;
         }
 
-    currency z(0);
+    currency z(0.0);
     if(Solving)
         {
 // Apparently this should never be done because Solve() is called in
@@ -265,7 +265,7 @@ currency AccountValue::RunOneBasis(mcenum_run_basis a_Basis)
 //
 currency AccountValue::RunAllApplicableBases()
 {
-    currency z(0);
+    currency z(0.0);
 
     // TODO ?? Normally, running on the current basis determines the
     // overriding values for all components of outlay--e.g., premiums,
@@ -401,7 +401,7 @@ void AccountValue::InitializeLife(mcenum_run_basis a_Basis)
     // TODO ?? TAXATION !! Shouldn't we increase initial SA if contract in 
corridor at issue?
     OldDB = OldSA;
 
-    SurrChg_.assign(BasicValues::GetLength(), currency(0));
+    SurrChg_.assign(BasicValues::GetLength(), currency(0.0));
 
     // TAXATION !! Input::InforceAnnualTargetPremium should be used here.
     double annual_target_premium = GetModalTgtPrem
@@ -578,15 +578,15 @@ void AccountValue::SetInitialValues()
 
     CumPmts                     = InforceCumPmts;
     TaxBasis                    = InforceTaxBasis;
-    YearlyTaxBasis.assign(BasicValues::GetLength(), currency(0));
+    YearlyTaxBasis.assign(BasicValues::GetLength(), currency(0.0));
     MlyNoLapsePrem              = 0.0;
     CumNoLapsePrem              = InforceCumNoLapsePrem;
 
     // Initialize all elements of this vector to 'false'. Then, when
     // the no-lapse criteria fail to be met, future values are right.
     YearlyNoLapseActive.assign(BasicValues::GetLength(), false);
-    loan_ullage_       .assign(BasicValues::GetLength(), currency(0));
-    withdrawal_ullage_ .assign(BasicValues::GetLength(), currency(0));
+    loan_ullage_       .assign(BasicValues::GetLength(), currency(0.0));
+    withdrawal_ullage_ .assign(BasicValues::GetLength(), currency(0.0));
     NoLapseActive               = true;
     if(NoLapseDboLvlOnly && mce_option1 != DeathBfts_->dbopt()[0])
         {
@@ -690,7 +690,7 @@ currency AccountValue::IncrementBOM
         {
         // Return value is total assets. After the policy has lapsed or
         // matured, there are no assets.
-        return currency(0);
+        return currency(0.0);
         }
 
     // Paranoid check.
@@ -762,8 +762,8 @@ void AccountValue::IncrementEOM
 
     // Save arguments, constraining their values to be nonnegative,
     // for calculating banded and tiered quantities.
-    AssetsPostBom  = std::max(currency(0), assets_post_bom  );
-    CumPmtsPostBom = std::max(currency(0), cum_pmts_post_bom);
+    AssetsPostBom  = std::max(currency(0.0), assets_post_bom  );
+    CumPmtsPostBom = std::max(currency(0.0), cum_pmts_post_bom);
 
     DoMonthCR();
 }
@@ -845,10 +845,10 @@ void AccountValue::InitializeYear()
     // value depends on the maximum loan, so it cannot be known here.
     ActualLoan                  = 0.0;
 
-    GrossPmts   .assign(12, currency(0));
-    EeGrossPmts .assign(12, currency(0));
-    ErGrossPmts .assign(12, currency(0));
-    NetPmts     .assign(12, currency(0));
+    GrossPmts   .assign(12, currency(0.0));
+    EeGrossPmts .assign(12, currency(0.0));
+    ErGrossPmts .assign(12, currency(0.0));
+    NetPmts     .assign(12, currency(0.0));
 
     InitializeSpecAmt();
 }
@@ -1023,7 +1023,7 @@ currency AccountValue::CSVBoost() const
         + yare_input_.CashValueEnhancementRate[Year]
         ;
     LMI_ASSERT(0.0 <= z);
-    return currency(z * std::max(currency(0), TotalAccountValue()));
+    return currency(z * std::max(currency(0.0), TotalAccountValue()));
 }
 
 //============================================================================
@@ -1180,7 +1180,7 @@ void AccountValue::FinalizeYear()
 
     if(!Solving)
         {
-        csv_net = std::max(csv_net, currency(0));
+        csv_net = std::max(csv_net, currency(0.0));
         }
 
     if(Solving)
diff --git a/ihs_avmly.cpp b/ihs_avmly.cpp
index 734ffa2..f03dd8c 100644
--- a/ihs_avmly.cpp
+++ b/ihs_avmly.cpp
@@ -196,7 +196,7 @@ void AccountValue::DoMonthDR()
             );
         }
 
-    currency gross_1035 = currency(0);
+    currency gross_1035 = currency(0.0);
     if(0 == Year && 0 == Month)
         {
         gross_1035 = External1035Amount + Internal1035Amount;
@@ -292,7 +292,7 @@ void AccountValue::process_payment(currency payment)
     LMI_ASSERT(0.0 <= EeGrossPmts[Month]);
     LMI_ASSERT(0.0 <= ErGrossPmts[Month]);
 
-    currency gross_1035 = currency(0);
+    currency gross_1035 = currency(0.0);
     if(0 == Year && 0 == Month)
         {
         gross_1035 = External1035Amount + Internal1035Amount;
@@ -578,7 +578,7 @@ void AccountValue::TxExch1035()
 
     // TODO ?? Assume for now that all 1035 exchanges represent ee payments.
     EeGrossPmts[Month] = GrossPmts[Month];
-    currency amount_exempt_from_premium_tax = currency(0);
+    currency amount_exempt_from_premium_tax = currency(0.0);
     if(WaivePmTxInt1035)
         {
         amount_exempt_from_premium_tax = Internal1035Amount;
@@ -610,7 +610,7 @@ void AccountValue::TxExch1035()
 
     if(HoneymoonActive)
         {
-        HoneymoonValue += std::max(currency(0), GrossPmts[Month]);
+        HoneymoonValue += std::max(currency(0.0), GrossPmts[Month]);
         }
 
     CumPmts += GrossPmts[Month];
@@ -822,7 +822,7 @@ void AccountValue::ChangeSupplAmtBy(currency delta)
 
     TermSpecAmt = std::max
         (TermSpecAmt
-        ,currency(0) // No minimum other than zero is defined.
+        ,currency(0.0) // No minimum other than zero is defined.
         );
     TermSpecAmt = round_specamt()(TermSpecAmt);
     // At least for now, there is no effect on surrender charges.
@@ -913,11 +913,11 @@ void AccountValue::TxOptionChange()
                 {
                 if(mce_option2 == old_option)
                     {
-                    ChangeSpecAmtBy(std::max(currency(0), 
TotalAccountValue()));
+                    ChangeSpecAmtBy(std::max(currency(0.0), 
TotalAccountValue()));
                     }
                 else if(mce_rop == old_option)
                     {
-                    ChangeSpecAmtBy(std::max(currency(0), CumPmts));
+                    ChangeSpecAmtBy(std::max(currency(0.0), CumPmts));
                     }
                 else if(mce_mdb == old_option)
                     {
@@ -944,7 +944,7 @@ void AccountValue::TxOptionChange()
         case mce_option2:
             if(OptChgCanDecrSA)
                 {
-                ChangeSpecAmtBy(currency(-std::max(currency(0), 
TotalAccountValue())));
+                ChangeSpecAmtBy(currency(-std::max(currency(0.0), 
TotalAccountValue())));
                 }
             else
                 {
@@ -954,7 +954,7 @@ void AccountValue::TxOptionChange()
         case mce_rop:
             if(OptChgCanDecrSA)
                 {
-                ChangeSpecAmtBy(currency(-std::max(currency(0), CumPmts)));
+                ChangeSpecAmtBy(currency(-std::max(currency(0.0), CumPmts)));
                 }
             else
                 {
@@ -988,7 +988,7 @@ void AccountValue::TxSpecAmtChange()
 // > post-1035 exchange calculation of the seven pay will have a death benefit
 // > amount to base its calculations on.
 #if 1
-        ChangeSpecAmtBy(currency(0));
+        ChangeSpecAmtBy(currency(0.0));
 #else // 0
         // TODO ?? Changing specamt by zero is absurd. The following
         // commented-out alternative seems to do the same thing as
@@ -1228,7 +1228,7 @@ void AccountValue::TxAscertainDesiredPayment()
             ;
     LMI_ASSERT(materially_equal(GrossPmts[Month], EeGrossPmts[Month] + 
ErGrossPmts[Month]));
 
-    currency eepmt = currency(0);
+    currency eepmt = currency(0.0);
     if(ee_pay_this_month)
         {
         eepmt = PerformEePmtStrategy();
@@ -1243,7 +1243,7 @@ void AccountValue::TxAscertainDesiredPayment()
         GrossPmts  [Month] += eepmt;
         }
 
-    currency erpmt = currency(0);
+    currency erpmt = currency(0.0);
     if(er_pay_this_month)
         {
         erpmt = PerformErPmtStrategy();
@@ -1324,7 +1324,7 @@ void AccountValue::TxLimitPayment(double a_maxpmt)
 
     if(mce_reduce_prem == yare_input_.AvoidMecMethod && 
!Irc7702A_->IsMecAlready())
         {
-        currency gross_1035 = currency(0);
+        currency gross_1035 = currency(0.0);
         if(0 == Year && 0 == Month)
             {
             gross_1035 = External1035Amount + Internal1035Amount;
@@ -1428,7 +1428,7 @@ void AccountValue::TxAcceptPayment(currency a_pmt)
     LMI_ASSERT(0.0 <= a_pmt);
     // Internal 1035 exchanges may be exempt from premium tax; they're
     // handled elsewhere, so here the exempt amount is always zero.
-    currency actual_load = GetPremLoad(a_pmt, currency(0));
+    currency actual_load = GetPremLoad(a_pmt, currency(0.0));
     currency net_pmt = a_pmt - actual_load;
     LMI_ASSERT(0.0 <= net_pmt);
     NetPmts[Month] += net_pmt;
@@ -1441,12 +1441,12 @@ void AccountValue::TxAcceptPayment(currency a_pmt)
 
     process_payment(net_pmt);
 
-    Dcv += std::max(currency(0), net_pmt);
+    Dcv += std::max(currency(0.0), net_pmt);
     LMI_ASSERT(0.0 <= Dcv);
 
     if(HoneymoonActive)
         {
-        HoneymoonValue += std::max(currency(0), a_pmt);
+        HoneymoonValue += std::max(currency(0.0), a_pmt);
         }
 
     CumPmts += a_pmt;
@@ -1682,7 +1682,7 @@ void AccountValue::TxSetDeathBft()
         case mce_option2:
             {
             // Negative AV doesn't decrease death benefit.
-            DBIgnoringCorr = ActualSpecAmt + std::max(currency(0), 
TotalAccountValue());
+            DBIgnoringCorr = ActualSpecAmt + std::max(currency(0.0), 
TotalAccountValue());
             DB7702A        = ActualSpecAmt;
             }
             break;
@@ -1691,8 +1691,8 @@ void AccountValue::TxSetDeathBft()
             // SA + sum of premiums less withdrawals, but not < SA;
             // i.e., ignore 'CumPmts' if it is less than zero, as it
             // easily can be, e.g., if WDs are not limited to basis.
-            DBIgnoringCorr = ActualSpecAmt + std::max(currency(0), CumPmts);
-            DB7702A        = ActualSpecAmt + std::max(currency(0), CumPmts);
+            DBIgnoringCorr = ActualSpecAmt + std::max(currency(0.0), CumPmts);
+            DB7702A        = ActualSpecAmt + std::max(currency(0.0), CumPmts);
             }
             break;
         case mce_mdb:
@@ -1711,7 +1711,7 @@ void AccountValue::TxSetDeathBft()
     // surrender charge must be subtracted, increasing the account value.
     currency cash_value_for_corridor =
           TotalAccountValue()
-        - std::min(currency(0), SurrChg())
+        - std::min(currency(0.0), SurrChg())
         + GetRefundableSalesLoad()
 //        + std::max(0.0, ExpRatReserve) // This would be added if it existed.
         ;
@@ -1723,7 +1723,7 @@ void AccountValue::TxSetDeathBft()
 
     DBReflectingCorr = std::max
         (DBIgnoringCorr
-        ,currency(round_death_benefit()(YearsCorridorFactor * 
std::max(currency(0), cash_value_for_corridor)))
+        ,currency(round_death_benefit()(YearsCorridorFactor * 
std::max(currency(0.0), cash_value_for_corridor)))
         );
     DBReflectingCorr = round_death_benefit()(DBReflectingCorr);
     LMI_ASSERT(0.0 <= DBReflectingCorr);
@@ -1737,7 +1737,7 @@ void AccountValue::TxSetDeathBft()
         ,   (
                 YearsCorridorFactor
             *   (   Dcv
-                -   std::min(currency(0), SurrChg())
+                -   std::min(currency(0.0), SurrChg())
                 +   GetRefundableSalesLoad()
 //                +   std::max(0.0, ExpRatReserve) // This would be added if 
it existed.
                 )
@@ -1772,7 +1772,7 @@ void AccountValue::TxSetTermAmt()
         return;
         }
 
-    TermDB = std::max(currency(0), TermSpecAmt + DBIgnoringCorr - 
DBReflectingCorr);
+    TermDB = std::max(currency(0.0), TermSpecAmt + DBIgnoringCorr - 
DBReflectingCorr);
     TermDB = round_death_benefit()(TermDB);
 }
 
@@ -2379,13 +2379,13 @@ void AccountValue::SetMaxWD()
         + (AVRegLn  + AVPrfLn)
         - (RegLnBal + PrfLnBal)
         - anticipated_deduction(MaxWDDed_)
-        - std::max(currency(0), SurrChg())
+        - std::max(currency(0.0), SurrChg())
         ;
     if(MaxWD < MinWD)
         {
-        MaxWD = currency(0);
+        MaxWD = currency(0.0);
         }
-    MaxWD = std::max(currency(0), MaxWD);
+    MaxWD = std::max(currency(0.0), MaxWD);
 }
 
 /// Take a withdrawal.
@@ -2425,7 +2425,7 @@ void AccountValue::TxTakeWD()
 
     if(Solving)
         {
-        withdrawal_ullage_[Year] = std::max(currency(0), RequestedWD - MaxWD);
+        withdrawal_ullage_[Year] = std::max(currency(0.0), RequestedWD - 
MaxWD);
         }
 
     if(Solving || mce_run_gen_curr_sep_full == RunBasis_)
@@ -2599,7 +2599,7 @@ void AccountValue::TxTakeWD()
             // Do you really want 'face' here rather than specamt? --Yes
             if(WdDecrSpecAmtDboLvl)
                 {
-                ChangeSpecAmtBy(currency(0) - GrossWD);
+                ChangeSpecAmtBy(currency(0.0) - GrossWD);
                 // Min AV after WD not directly implemented.
                 // If WD causes AV < min AV, do we:
                 //   reduce the WD?
@@ -2619,7 +2619,7 @@ void AccountValue::TxTakeWD()
             {
             if(WdDecrSpecAmtDboInc)
                 {
-                ChangeSpecAmtBy(currency(0) - GrossWD);
+                ChangeSpecAmtBy(currency(0.0) - GrossWD);
                 }
             else
                 {
@@ -2631,7 +2631,7 @@ void AccountValue::TxTakeWD()
             {
             if(WdDecrSpecAmtDboRop)
                 {
-                ChangeSpecAmtBy(currency(0) - GrossWD);
+                ChangeSpecAmtBy(currency(0.0) - GrossWD);
                 }
             else
                 {
@@ -2681,7 +2681,7 @@ void AccountValue::SetMaxLoan()
           (AVGenAcct + AVSepAcct) * MaxLoanAVMult
         + (AVRegLn + AVPrfLn)
         - anticipated_deduction(MaxLoanDed_)
-        - std::max(currency(0), SurrChg())
+        - std::max(currency(0.0), SurrChg())
         ;
 
     // Illustrations generally permit loans only on anniversary.
@@ -2767,12 +2767,12 @@ void AccountValue::TxTakeLoan()
     if(Solving)
         {
         ActualLoan = RequestedLoan;
-        loan_ullage_[Year] = std::max(currency(0), RequestedLoan - 
max_loan_increment);
+        loan_ullage_[Year] = std::max(currency(0.0), RequestedLoan - 
max_loan_increment);
         }
     else
         {
         ActualLoan = std::min(max_loan_increment, RequestedLoan);
-        ActualLoan = std::max(ActualLoan, currency(0));
+        ActualLoan = std::max(ActualLoan, currency(0.0));
         // TODO ?? Shouldn't this happen in FinalizeMonth()?
         InvariantValues().NewCashLoan[Year] = ActualLoan;
         }
@@ -2852,7 +2852,7 @@ void AccountValue::TxTestLapse()
         ;
     if(!LapseIgnoresSurrChg)
         {
-        lapse_test_csv -= std::max(currency(0), SurrChg());
+        lapse_test_csv -= std::max(currency(0.0), SurrChg());
         }
     lapse_test_csv = std::max(lapse_test_csv, HoneymoonValue);
 
diff --git a/ihs_avsolve.cpp b/ihs_avsolve.cpp
index 7631208..b0ce5b4 100644
--- a/ihs_avsolve.cpp
+++ b/ihs_avsolve.cpp
@@ -177,7 +177,7 @@ currency AccountValue::SolveTest(currency a_CandidateValue)
         ,0
         );
     LMI_ASSERT(0 <= no_lapse_dur);
-    currency most_negative_csv(0);
+    currency most_negative_csv(0.0);
     if(no_lapse_dur < SolveTargetDuration_)
         {
         most_negative_csv = *std::min_element
@@ -282,7 +282,7 @@ currency AccountValue::SolveGuarPremium()
     // Store original er premiums for later restoration.
     std::vector<currency> stored = Outlay_->er_modal_premiums();
     // Zero out er premiums and solve for ee premiums only.
-    Outlay_->set_er_modal_premiums(currency(0), 0, BasicValues::GetLength());
+    Outlay_->set_er_modal_premiums(currency(0.0), 0, BasicValues::GetLength());
 
     bool temp_solving     = Solving;
     Solving               = true;
@@ -294,7 +294,7 @@ currency AccountValue::SolveGuarPremium()
         ,0
         ,BasicValues::GetLength()
         ,mce_solve_for_endt
-        ,currency(0)
+        ,currency(0.0)
         ,BasicValues::GetLength()
         ,mce_gen_guar
         ,mce_sep_full
diff --git a/ihs_avstrtgy.cpp b/ihs_avstrtgy.cpp
index 27f2aa9..4fc6cb6 100644
--- a/ihs_avstrtgy.cpp
+++ b/ihs_avstrtgy.cpp
@@ -174,7 +174,7 @@ void AccountValue::PerformSupplAmtStrategy()
 {
     for(int j = 0; j < BasicValues::Length; ++j)
         {
-        currency m = currency(0); // No minimum other than zero is defined.
+        currency m = currency(0.0); // No minimum other than zero is defined.
         currency explicit_value = DeathBfts_->supplamt()[j];
         mcenum_sa_strategy strategy = 
yare_input_.SupplementalAmountStrategy[j];
         currency z = CalculateSpecAmtFromStrategy(j, 0, explicit_value, 
strategy);
@@ -273,22 +273,22 @@ currency AccountValue::DoPerformPmtStrategy
             }
         case mce_pmt_mep:
             {
-            currency sa = specamt_for_7702A(0);
+            currency sa = specamt_for_7702A(0.0);
             return GetModalPremMaxNonMec(0, a_InitialMode, sa);
             }
         case mce_pmt_glp:
             {
-            currency sa = specamt_for_7702(0);
+            currency sa = specamt_for_7702(0.0);
             return GetModalPremGLP(0, a_InitialMode, sa, sa);
             }
         case mce_pmt_gsp:
             {
-            currency sa = specamt_for_7702(0);
+            currency sa = specamt_for_7702(0.0);
             return GetModalPremGSP(0, a_InitialMode, sa, sa);
             }
         case mce_pmt_corridor:
             {
-            currency sa = specamt_for_7702(0);
+            currency sa = specamt_for_7702(0.0);
             return GetModalPremCorridor(0, a_InitialMode, sa);
             }
         case mce_pmt_table:
diff --git a/ihs_basicval.cpp b/ihs_basicval.cpp
index 70bdbf6..f1d040e 100644
--- a/ihs_basicval.cpp
+++ b/ihs_basicval.cpp
@@ -1614,7 +1614,7 @@ currency BasicValues::GetModalSpecAmtMlyDed(currency, 
mcenum_mode) const
         << "No maximum specified amount is defined for this product."
         << LMI_FLUSH
         ;
-    return currency(0);
+    return currency(0.0);
 }
 
 /// 'Unusual' banding is one particular approach we needed to model.
diff --git a/solve.cpp b/solve.cpp
index ec601da..df49fcb 100644
--- a/solve.cpp
+++ b/solve.cpp
@@ -79,7 +79,7 @@ currency SolveTest()
     //   CSV at target duration
     //   lowest negative CSV through target duration
     //   amount of loan in excess of maximum loan through target duration
-    currency Negative(0);
+    currency Negative(0.0);
 
     // IHS !! Start counting only at end of no-lapse period--lmi does that 
already.
     for(int j = 0; j < ThatSolveTgtYear; ++j)
@@ -98,7 +98,7 @@ currency SolveTest()
         z = std::min(z, Negative);
     // IHS !! If SolveTgtYr within no-lapse period...see lmi.
 
-    currency y(0);
+    currency y(0.0);
     switch(ThatSolveTarget)
         {
         case mce_solve_for_endt:



reply via email to

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