首页 > 代码库 > parse string once and convert it to float
parse string once and convert it to float
一个小题目,模拟stof()功能,网上答案很多,但是感觉都不够简洁。
主要是整数部分和小数部分实现由一定区别,这里尝试不区分整数和小数部分,先忽略小数点,然后最后在做一个除操作。
比如输入:100.123,先转换为100123,然后除1000
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <string> using namespace std; //simulate the stof() method float _stof(string s){ float res = 0; if(s.length() > 0){ int dp= -1; for (int i = 0; i < s.length(); ++i){ if(s[i] == ‘.‘ ) dp = 0; if(s[i] < ‘0‘ || s[i] >‘9‘) continue; if(dp > -1) dp++; res = res*10 + s[i] - ‘0‘; } if(dp > -1) res = res/pow(10, dp); } return res; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。