标签:style insert 科学计数法 color ios 要求 串处理 begin span
题意:
给出科学计数法的形式,转化成常规的表示,要求保留所有的有效位数
思路:纯粹的字符串处理问题,注意边界条件即可。如+1.23E+02这种,转化后是123,既不需要补0,也不需要添加小数点。
代码:
#include <iostream> #include <string> using namespace std; string change(string str) { string ans,sign; if(str[0]==‘-‘) sign="-"; str.erase(str.begin()); int pos=str.find("E"); string strExp=str.substr(pos+1,str.size()-1-pos); str=str.substr(0,pos); int exp=stoi(strExp); pos=str.find("."); str.erase(pos,1); if(exp<0){//前面添0 ans="0."+string(-exp-1,‘0‘)+str; }else{//后面补0 int len=str.size()-1;//小数点后面的位数 if(len<exp) ans=str+string(exp-len,‘0‘); else if(len>exp) { ans=str; ans.insert(exp+1,"."); }else{ ans=str; } } return sign+ans; } int main() { string str; cin>>str; cout<<change(str); return 0; }
标签:style insert 科学计数法 color ios 要求 串处理 begin span
原文地址:https://www.cnblogs.com/kkmjy/p/9537295.html