讨论中29行改进代码 解决5.3+5.6=0.9的问题
浮点数加法
http://www.nowcoder.com/questionTerminal/ddec753f446e4ba4944e35378ba635c8
#include <iostream> #include <cstdio> #include <string> using namespace std; int main(){ string f1,f2; while(getline(cin,f1)){ getline(cin,f2); int pos1=f1.find('.'); int pos2=f2.find('.'); if(pos1>pos2){ f2.insert(0,pos1-pos2,'0'); }else{ f1.insert(0,pos2-pos1,'0'); } if(f1.length()>f2.length()){ f2.insert(f2.length(),f1.length()-f2.length(),'0'); } else{ f1.insert(f1.length(),f2.length()-f1.length(),'0'); } int a=0; for(int i=f1.length()-1;i>=0;--i){ if(f1[i]=='.') continue; f1[i]+=f2[i]-'0'+a; a=(f1[i]-'0')/10; f1[i]=(f1[i]-'0')%10+'0'; } if (a != 0) { f1.insert(0, 1, '1'); } cout<<f1<<endl; } return 0; }