首页 > 其他 > 详细

parse string once and convert it to float

时间:2014-05-22 14:45:24      阅读:313      评论:0      收藏:0      [点我收藏+]
一个小题目,模拟stof()功能,网上答案很多,但是感觉都不够简洁。
主要是整数部分和小数部分实现由一定区别,这里尝试不区分整数和小数部分,先忽略小数点,然后最后在做一个除操作。
比如输入:100.123,先转换为100123,然后除1000

bubuko.com,布布扣
#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;
}
  
bubuko.com,布布扣

 

parse string once and convert it to float,布布扣,bubuko.com

parse string once and convert it to float

原文:http://www.cnblogs.com/sparkles/p/3744794.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!