本来想调用两次add()函数直接计算出整数和小数部分的加和,但是小数部分进位没办法被计算后边的整数部分得知,除非用一个全局变量来做标记,但是这样移植性就不好了,所以在flo_add()里先将小数部分直接算出来,记录进位,然后调用add()计算整数部分,再次调用add()把进位加到整数部分。
#include<stdio.h>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string add(string st1,string st2)
{
if(st1.size()<=st2.size())
{
string s=st1;
st1=st2;
st2=s;
}
reverse(st1.begin(),st1.end()); //将string类st1,st2逆转顺序
reverse(st2.begin(),st2.end());
int len1,len2;
len1=st1.length(); //计算各自的长度
len2=st2.length();
int in=0,num; //进位in初始化为0
for(int i=0; i<len2; i++)
{
num=st1[i]-'0'+st2[i]-'0'+in;