首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“不务正业NPV函数

标签:Excel公式 NPV是一个财务函数,基于一系列将来收(正值)支(负值)现金流和一贴现率,返回一项投资净现值。...其语法为: NPV(rate,value1,value2,…) 本来是计算净现值函数,然而,却可另作它用。 如下图1所示,列A中有一系列带有单位数值,现在想要求其中数字之和。 图1 怎么办呢?...一种思路是,如图1所示先将列A中单元格内数字提取到列B中,然后求和。 可以使用NPV函数来实现。...NPV神奇之处在于NPV计算公式,其中每项乘以(1+rate)^n倒数,其中n是序列中第n项,例如,(1+rate)^1、(1+rate)^2等。通过使用不同rate值,可以得到不同结果。...一个函数有它本身用途,然而,如果思路打开,也许这个函数会得到更广泛且有想象力应用。当然,前提是我们首先要熟悉函数基本运作原理,能够熟练地运用它们,打造扎实基本功。

62720

【C++】运算符重载 ⑧ ( 左移运算符重载 | 友元函数 成员函数 实现运算符重载 | 类对象 使用 左移运算符 )

一、左移运算符重载 1、友元函数 / 成员函数 实现运算符重载 运算符重载 正规写法一般都是 使用 成员函数 形式 实现 ; 加法 + , 减法 - , 自增 ++ , 自减 - - , 一般都使用成员函数...实现 运算符重载 ; 上述 运算符重载 既可以使用 成员函数 进行重载 , 又可以使用友元函数进行重载 ; 只能使用 成员函数 重载运算符 : = , [] , () , -> 等操作符 只能使用...成员函数 进行重载 ; 只能使用 友元函数 重载运算符 : 无法修改 左操作数 情况下 , 只能使用 全局函数 ( 需声明 友元函数 ) 进行重载 ; 2、类对象 使用 左移运算符 平时使用 cout...(或没有可接受转换) 如果想要使用 cout << s1 << endl; 用法输出对象到日志中 , 需要重载 左移操作符 ; 3、左移运算符 << 重载 使用 全局函数 实现 左移运算符 << 重载...: 首先 , 写出函数名 , cout << s1 左移操作符重载 , 函数名规则为 " operate " 后面跟上要重载运算符 , 函数名是 operate<< ; operate<< 然后 ,

20910
您找到你想要的搜索结果了吗?
是的
没有找到

【C++】运算符重载 ⑤ ( 一元运算符重载 | 使用 成员函数 实现 前置 ++ 自增运算符重载 | 使用 成员函数 实现 前置 - - 自减运算符重载 )

一、一元运算符重载 1、使用 成员函数 实现 前置 ++ 自增运算符重载 使用 全局函数 实现 前置 ++ 自增运算符重载 : 首先 , 写出函数名 , 函数名规则为 " operate " 后面跟上要重载运算符..., 编写具体运算符操作业务逻辑 ; // 使用 成员函数 实现 前置 ++ 自增运算符重载 // 重载 前置 ++ 运算符 // 实现 1 个 Student 对象 自增运算 // 由于 参数中...height++; // 此处返回引用类型 , 需要对 this 指针进行解包 return *this; }; 2、使用 成员函数 实现 前置 - - 自减运算符重载 使用 全局函数 实现...前置 - - 自减运算符重载 : 首先 , 写出函数名 , 函数名规则为 " operate " 后面跟上要重载运算符 , 函数名是 operate-- ; operate-- 然后 , 根据操作数...编写具体运算符操作业务逻辑 ; // 使用 成员函数 实现 前置 -- 自减运算符重载 // 重载 前置 -- 运算符 // 实现 1 个 Student 对象 自增运算 // 由于 参数中

15640

【C++】运算符重载 ④ ( 一元运算符重载 | 使用 全局函数 实现 前置 ++ 自增运算符重载 | 使用 全局函数 实现 前置 - - 自减运算符重载 )

全局函数 实现 前置 ++ 自增运算符重载 使用 全局函数 实现 前置 ++ 自增运算符重载 : 首先 , 写出函数名 , 函数名规则为 " operate " 后面跟上要重载运算符 , 函数名是...s) 最后 , 实现函数体 , 编写具体运算符操作业务逻辑 ; // 使用 全局函数 实现 前置 ++ 自增运算符重载 // 重载 前置 ++ 运算符 // 实现 1 个 Student 对象 自增运算...++; s.height++; return s; }; 为了使全局函数中能访问 Student 类私有成员 , 需要将该全局函数声明为 友元函数 ; // 使用 全局函数 实现 前置 ++ 自增运算符重载...s) 最后 , 实现函数体 , 编写具体运算符操作业务逻辑 ; // 使用 全局函数 实现 前置 -- 自减运算符重载 // 重载 前置 -- 运算符 // 实现 1 个 Student 对象 自减运算...--; s.height--; return s; }; 为了使全局函数中能访问 Student 类私有成员 , 需要将该全局函数声明为 友元函数 ; // 使用 全局函数 实现 前置 -- 自增运算符重载

15920

【C++】运算符重载 ⑦ ( 一元运算符重载 | 后置运算符重载 | 使用 全局函数 实现 后置 ++ 自增运算符重载 | 使用 成员函数 实现 后置 -- 自减运算符重载 )

全局函数 实现 后置 ++ 自增运算符重载 使用 全局函数 实现 后置 ++ 自增运算符重载 : 首先 , 写出函数名 , 函数名规则为 " operate " 后面跟上要重载运算符 , 函数名是 operate...; // 使用 全局函数 实现 后置 ++ 自增运算符重载 // 重载 后置 ++ 运算符 // 实现 1 个 Student 对象 自增运算 // 先使用 参数中 Student& s 对象 ,...++; return ret; }; 2、使用 成员函数 实现 后置 – 自减运算符重载 使用 成员函数 实现 后置 – 自减运算符重载 : 首先 , 写出函数名 , 函数名规则为 " operate...--(int) 最后 , 实现函数体 , 编写具体运算符操作业务逻辑 ; public: // 使用 成员函数 实现 后置 -- 自减运算符重载 // 重载 后置 -- 运算符 // 实现 1...成员函数 实现 后置 -- 自减运算符重载 // 重载 后置 -- 运算符 // 实现 1 个 Student 对象 自减运算 // 先使用 this 指针指向对象 , 再自减 // 因此

16740

sql运算符使用

SQL中运算符是用来在查询过程中进行各种操作符号。...SQL中包括以下类型运算符:算术运算符比较运算符逻辑运算符模糊查询运算符字符串运算符聚合运算符下面我们将对这些运算符逐一进行详细介绍,并给出相关示例。...例如,我们可以使用以下查询语句来查询价格大于2.5所有订单:SELECT * FROM orders WHERE price > 2.5;查询结果如下:+-----+--------+-------+...例如,我们可以使用以下查询语句来查询名称中包含“a”所有订单:SELECT * FROM orders WHERE name LIKE '%a%';查询结果如下:+-----+--------+---...例如,我们可以使用以下查询语句来连接名称和价格,形成一个新字符串:SELECT name || ' - $' || price AS item_info FROM orders;查询结果如下:+---

48430

strlen()函数和sizeof()运算符区别

功能 其功能是获取字符串长度。 返回值 在MSDN文档中查看strlen函数返回值,叙述如下。...sizeof()运算符 很对人以为sizeof是用来计算数据类型大小一个函数,这其实是一个误区,它同加减乘除一样是运算符。...运算符表达式 sizeof关键字提供了与变量或类型(包括聚合类型)相关存储空间。...sizeof运算符不能返回动态分配数组或外部数组大小。 了解了以上相关知识,我们可以总结出两者不同。...: 分析上图得到结果,定义两个长度为10个字节字符数组,由上文可知,sizeof()运算符是计算整个数组大小,所以输出均为10 而经过strlen计算字符串长度,由其函数特性,在str1

32530

带右值引用拷贝构造函数运算符重载函数

考虑一个占用堆资源类对象拷贝构造和赋值运算符重载函数,当我们用一个临时对象去拷贝构造一个新对象或者赋值给一个已经存在对象时,会出现一下问题:如string类 #include ...到这里就引出了第一个主题,带右值引用拷贝构造函数。因为临时对象是右值。临时对象用完就要析构,那就把临时对象占用资源直接给新对象就好了。...问题就处在临时对象赋值完就析构了,与其白白浪费,不如拿来直接使用,有点“偷”感觉!!!...this; } delete[] mptr; mptr = s.mptr; s.mptr = nullptr; return *this; } 结论: 至此,通过一个例子我们总结出了带右值引用拷贝构造函数运算符重载函数所带来效率提升...在实际开发中,当出现一定要用临时对象作为返回值,要用临时来进行赋值时,我们可以为其类实现带右值引用拷贝构造函数运算符重载函数,在程序效率上会得到很大提升。

73520

【C++干货基地】特殊函数函数:赋值运算符重载

一、运算符重载 C++ 中为了增加代码可读性运算符重载是具有特殊函数函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通函数类似。...函数名字为:关键字operator后面接需要重载运算符符号。...2.2 赋值运算符重载行为 赋值运算符重载既然也是六大默认成员函数之一那么肯定也是我们不写自动生成一个默认复制运算符重载 ,那么究竟有什么行为呢?...构造函数和析构函数他们行为都是对内置类型不处理对自动定义类型调用他们析构或者构造函数,而 赋值运算符重载是和 拷贝构造一样行为,我们不写会自定生成一个默认函数,默认赋值运算符重载 以值方式逐字节拷贝...而我们后置++ 返回是++之前值先使用在++所以需要返回+1之前旧值,故需在实现时需要先将this保存一份,然后给this+1 后置++: 前置++和后置++都是一元运算符,为了让前置++与后置

4700

【C++】运算符重载案例 - 字符串类 ⑤ ( 重载 大于 > 运算符 | 重载 小于 < 运算符 | 重载 右移 >> 运算符 - 使用全局函数重载 | 代码示例 )

一、重载 大于号 / 小于号 运算符 - 使用成员函数重载 1、重载 大于 > 运算符 使用 成员函数 实现 等于判断 == 运算符重载 : 首先 , 写出函数名 , 函数名规则为 " operate..." 后面跟上要重载运算符 , 要对 String a , b 对象对比操作 , 使用 大于 > 运算符 , 使用时用法为 a > b ; 函数名是 operate> ; operate> 然后...} 2、重载 小于 < 运算符 使用 成员函数 实现 小于 < 运算符重载 : 首先 , 写出函数名 , 函数名规则为 " operate " 后面跟上要重载运算符 , 要对 String a...<< s , 是将 标准输入流 cin 中内容输入到 s 对象中 ; 使用 成员函数 实现 右移 >> 运算符 重载 : 首先 , 写出函数名 , 函数名规则为 " operate " 后面跟上要重载运算符... 友元函数 ; // 使用 全局函数 实现 右移运算符 >> 重载 // 将全局函数 声明为 String 友元函数 friend istream& operator>>(istream&

35320

【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件变量

1.8 函数使用 1 函数快速入门 2 传递参数给函数 1.9 数组 1 定义数组 2 读取数组 3 遍历数组 1.10 加载其它文件变量 1 简介 2 练习 1.6 Shell算术运算符 1...关系运算符只支持数字,不支持字符串,除非字符串值是数字。...其格式 为: 需求: 计算 1~100 和 运行脚本,输出: 使用使用了 Bash let 命令,它用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量,...1.8 函数使用 1 函数快速入门 格式 可以带 function fun() 定义,也可以直接 fun() 定义 , 不带任何参数。...在函数体内部,通过 形 式 来 获 取 参 数 值 , 例 如 , 1 表示 第一个参数, $2 表示第二个参数 ...

3.1K30

【C++】运算符重载 ② ( 类内部定义云算符重载 - 成员函数 | 类外部定义运算符重载 - 全局函数 | 可重载运算符 )

一、运算符重载本质 运算符重载本质是 " 函数调用 " ; 当使用 + 将 个对象相加时 , C++ 编译器会查找是否有定义运算符重载函数 ; // 自定义类型相加 Student s1(10,...二、运算符重载语法 - 类内部定义云算符重载 ( 成员函数 ) 1、运算符重载函数语法说明 C++ 中允许重新定义运算符行为 , 如常用加减成熟运算符 , 都可以进行重载操作 ; 可以自定义运算符操作..., 可以使用函数形式调用 , 也可以使用运算符进行运算 , 其 本质还是类函数调用 ; 2、运算符重载函数调用 重载运算符完整调用 , 即调用上面定义整个 operator+ 方法 , 这是采用正式函数调用方式...: 90 三、运算符重载语法 - 类外部定义运算符重载 ( 全局函数 ) ---- 1、运算符重载函数语法说明 类外部定义运算符重载 , 运算符重载也可以定义在类外部 , 可以是任意包含类头文件代码中...o3; } 2、运算符重载函数调用 已重载运算符调用 , 可以直接调用运算符重载 operator*() 方法 , 也可以直接使用运算符 , o1 * o2 ; //运算符重载 //注意这里

21410

ROLLUP 与 CUBE 运算符使用

对于数据汇总,是数据库经常用到任务之一,除了我们通常使用GROUP BY分组配合聚合函数对数据汇总,以及使用UNION ALL 对数据汇总之外,SQL还提供了 GROUP BY Col1...WITH CUBE | ROLLUP,以及COMPUTE BY 等汇总方式,本文主要介绍了使用CUBE 与ROLLUP运算符来实现数据分级汇总。...--4.使用GROUPING函数来处理汇总产生NULL值      对于使用ROLLUP与CUBE汇总数据所产生NULL值,容易引起与实际数据本身为NULL容易引起歧义,对此我们可以使用GROUPING...,当需要对所有维度进行汇总,应当使用CUBE运算符,对某一维度进行汇总则使用ROLLUP运算法。     ...需要注意是,WITH CUBE | ROLLUP必须跟在GROUP BY Col1,Col2列之后,然后可以通过使用HAVING子句配合GROUPING函数来过滤不需要结果集。

1K20

【C++】运算符重载 ⑨ ( 等号 = 运算符重载 | 调用默认浅拷贝构造函数情况分析 | 等号 = 运算符重载 与 拷贝构造函数 各自使用场景 | 等号 = 操作符重载步骤 )

博客总结 : 使用 成员函数 进行 等号运算符重载 函数原型如下 : Student& operator=(Student& s) 使用 已存在对象 A 对 另外一个已存在对象 B 赋值 , B =...进行拓展分析 ; 实现了 深拷贝构造函数 后 , 再次使用一个对象为另一个对象赋值时 , 如 Student s2 = s; 代码 , 就会自动调用 深拷贝构造函数 ; 2、等号 = 运算符重载 与...拷贝构造函数 各自使用场景 等号 = 运算符重载 与 拷贝构造函数 各自使用场景 : 拷贝构造函数 : 如果 使用对象 为一个 新对象 进行初始化 , 调用是拷贝构造函数 ; 等号 = 运算符重载 :...如果 使用对象 为一个已存在对象 重新进行赋值 , 调用是 等号运算符 重载运算符方法 ; 3、= 操作符重载步骤 使用 成员函数 实现 等号 = 运算符重载 : 首先 , 写出函数名 , Student...s2 = s; 等号 = 运算符重载 , 函数名规则为 " operate " 后面跟上要重载运算符 , 函数名是 operate= ; operate= 然后 , 根据操作数 写出函数参数 , 参数一般都是

21620
领券