十进制数据相加(大数据)
发布日期:2021-11-07 18:53:28 浏览次数:1 分类:技术文章

本文共 2651 字,大约阅读时间需要 8 分钟。

#ifdef UNICODEtypedef wstring _tstring;#elsetypedef string _tstring;#endif/***********************************************************************函数名称  :AddBigData函数功能  :两个大数据进行相加(必须为正整数 )函数参数  : 参数列表格式 [_IN_ _OUT_ _OPTION_] 参数名 说明信息@param _tstring s _IN_ 第一个相加的结果@param _tstring r _IN_ 第二个相加的结果返回值    : @return _tstring  两个整数相加的结果------------------------------------------------------------------------备注      :	输入的参数的要求:“必须是正整数”如果确保数据是正整数的话,请使用AddBigDataAux,这个函数运行的效率更高如果不能够保证输入参数是正整数的话,请使用AddBigData这个函数------------------------------------------------------------------------示例	  :************************************************************************/_tstring AddBigDataAux(_tstring s, _tstring r) {	int re = 0;	_tstring digit;	if (r.length() < s.length())		r.insert(r.begin(), s.length() - r.length(), '0');	else if (r.length() > s.length())		s.insert(s.begin(), r.length() - s.length(), '0');	for (int i = s.length() - 1; i >= 0; --i) {		int a = (int(s[i] + r[i]) + re - 96);		digit.insert(digit.begin(), char(a % 10 + 48));		re = a / 10;	}	if (re != 0)		digit.insert(digit.begin(), char(re + 48));	return digit;}/***********************************************************************函数名称  :AddBigData函数功能  :两个大数据数值相加(可以为浮点型)函数参数  : 参数列表格式 [_IN_ _OUT_ _OPTION_] 参数名 说明信息			@param _tstring s _IN_ 输入的第一个字符串			@param _tstring r _IN_ 输入的第二个字符串返回值    : @return _tstring _OUT_ 输出的两个字符串相加的结果------------------------------------------------------------------------备注      :	输入的参数的要求:“必须是正数”,但是可以是浮点型的数据如果确保数据是正整数的话,请使用AddBigDataAux,这个函数运行的效率更高如果不能够保证输入参数是正整数的话,请使用AddBigData这个函数------------------------------------------------------------------------示例	  :************************************************************************/_tstring AddBigData(_tstring s, _tstring r){	//先分别找到两个浮点型数的整数部分和浮点型部分	size_t pos1 = s.find(L'.');	size_t pos2 = r.find(L'.');	_tstring SInt, SFac, RInt, RFac;	if (pos1==_tstring::npos)//如果没有找到的话	{		SInt = s;		SFac = L"";	}	else	{		SInt = s.substr(0, pos1);		SFac = s.substr(pos1+1);	}	if (pos2==_tstring::npos)	{		RInt = r;		RFac = L"";	}	else	{		RInt = r.substr(0, pos2);		RFac = r.substr(pos2 + 1);	}	_tstring Int, Fac;//整数相加的结果、浮点数相加的结果	if (SFac.length()>RFac.length())	{		RFac.insert(RFac.end(), SFac.length() - RFac.length(), '0');	}	else	{		SFac.insert(SFac.end(), RFac.length() - SFac.length(), '0');	}	Fac = AddBigDataAux(SFac, RFac);	Int = AddBigDataAux(SInt, RInt);	if (Fac.length()>SFac.length())//如果相加之后的长度>原有的长度的话,说明发生了进制	{		Int = AddBigDataAux(Int, L"1");//整数部分+1		Fac.erase(Fac.begin());//小于部分减去前面1		Fac.insert(Fac.begin(), L'.');//	}	else//说明没有发生进制的情况	{		Fac.insert(Fac.begin(), L'.');	}	return Int+Fac;}

 

转载地址:https://blog.csdn.net/zhanggusheng/article/details/84581994 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:十进制数据相减(大数据)
下一篇:十进制数据相乘(大数据)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月22日 20时29分26秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

java开发加入购物车功能_java web开发——购物车功能实现 2019-04-21
Java虚拟机不能满足_深入理解Java虚拟机--读书笔记1/3 2019-04-21
python 协程 asyncio_python – asyncio.as_completed是否会产生期货或协同程序? 2019-04-21
java设定xml文件的encoding_配置web-xml解决中文乱码问题,及各种乱码问题集结 2019-04-21
hanlp java api_java分词工具hanlp介绍 2019-04-21
nginx php 源码安装,Nginx1.12.2加php7.2.0的编译安装 2019-04-21
php 删除字节,php – 删除无效/不完整的多字节字符 2019-04-21
php 实现版本号对比,如何在PHP中实现比较版本号 2019-04-21
php sql 给数据库追加内容,php如何向数据库中的某串数据后追加内容【急】 2019-04-21
php微信小程序获取用户信息,微信小程序授权获取用户详细信息openid的实例详解... 2019-04-21
Java三元运算和if,Java三元运算符与<JDK8兼容性中的if / else 2019-04-21
graphql-php enum,php – 如何在不写长查询的情况下查询所有的GraphQL类型字段? 2019-04-21
php date 函数用法,php中date()日期时间函数使用方法 2019-04-21
php除法获取整数和余数,PHP除法取整和取余数 2019-04-21
java迷宫路径,Java中的迷宫路径查找器 2019-04-21
php substr cnblog,php中substr用法示例 2019-04-21
php链接怎么截取,PHP 截取网页中的固定种子链接 2019-04-21
iis运行不起来php报500,解决IIS上安装thinkphp6运行报500错误 2019-04-21
php ajax上传图片过大500错误,javascript – JQuery AJAX文件上传错误500 2019-04-21
matlab 图中的legend,matlab中legend加图示命令的使用 2019-04-21