当前位置: 首页>>代码示例>>C++>>正文


C++ Double::changeSign方法代码示例

本文整理汇总了C++中Double::changeSign方法的典型用法代码示例。如果您正苦于以下问题:C++ Double::changeSign方法的具体用法?C++ Double::changeSign怎么用?C++ Double::changeSign使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Double的用法示例。


在下文中一共展示了Double::changeSign方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: _collectSumForFSubMt

/**
 * @brief 汇总某个指定主目下的所有子目的余额
 * @param fsub
 * @param mt
 * @param v
 * @param dir
 * @param vs
 * @param dirs
 */
void StatUtil::_collectSumForFSubMt(FirstSubject* fsub, int mt, Double &sum, MoneyDirection &dir, QHash<int, Double> vs, QHash<int, MoneyDirection> dirs)
{
    if(!fsub)
        return;
    QList<int> ids;
    foreach(SecondSubject* ssub, fsub->getChildSubs())
        ids<<ssub->getId();
    foreach(int id, ids){
        int key = id*10+mt;
        if(!vs.contains(key))
            continue;
        Double v = vs.value(key);
        if(dirs.value(key) == MDIR_D)
            v.changeSign();
        sum += v;
    }
开发者ID:wangkungit5905,项目名称:PzAssistant,代码行数:25,代码来源:statutil.cpp

示例2: _verifyExtraUnity

/**
 * @brief 验证主目余额与子目汇总后的余额是否一致
 * @param isPre     true:验证期初余额,false:验证期末余额
 * @return
 */
bool StatUtil::_verifyExtraUnity(QStringList& errors, bool isPre)
{
    QHash<int,Double> *f_pvs,*f_mvs,*s_pvs,*s_mvs;
    QHash<int,MoneyDirection> *f_dirs,*s_dirs;
    if(isPre){
        f_pvs = &preFExa; f_dirs = &preFDir; f_mvs = &preFExaM;
        s_pvs = &preSExa; s_dirs = &preSDir; s_mvs = &preSExaM;
    }
    else{
        f_pvs = &endFExa; f_dirs = &endFDir; f_mvs = &endFExaM;
        s_pvs = &endSExa; s_dirs = &endSDir; s_mvs = &endSExaM;
    }
    //1、验证原币余额
    QHashIterator<int,Double> it(*f_pvs);
    while(it.hasNext()){
        it.next();
        int fid = it.key()/10;
        FirstSubject* fsub = smg->getFstSubject(fid);
        if(!fsub)
            continue;
        int mt = it.key()%10;
        Double sum; MoneyDirection s_dir,f_dir;
        f_dir = f_dirs->value(it.key(),MDIR_P);
        _collectSumForFSubMt(fsub,mt,sum,s_dir,*s_pvs,*s_dirs);
        if(s_dir == MDIR_P && f_dir == MDIR_P)
            continue;
        if(((int)s_dir + (int)f_dir) == 0)
            sum.changeSign();
        if(sum != it.value())
            errors<<QString(tr("%1原币余额不一致,相差:%2")).arg(fsub->getName())
                    .arg((sum - it.value()).toString2());
    }
    //2、验证本币余额
    if(!errors.isEmpty())
        return false;
    return true;
}
开发者ID:wangkungit5905,项目名称:PzAssistant,代码行数:42,代码来源:statutil.cpp


注:本文中的Double::changeSign方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。