string转double

系统 1591 0

    Abstract

    std::string为library type,而int、double为built-in type,两者无法利用(int)或(double)的方式互转,本文提出轉換的方式。

    Introduction

    使用環境:Visual C++ 9.0 / Visual Studio 2008

    Method 1:

    使用C的atoi()與atof()。

    先利用c_str()轉成C string,再用atoi()與atof()。

    string_to_double.cpp / C++

    1 /*

    2 (C) OOMusou 2008 http://oomusou.cnblogs.com

    3

    4 Filename : string_to_double.cpp

    5 Compiler : Visual C++ 9.0 / Visual Studio 2008

    6 Description : Demo how to convert string to int (double)

    7 Release : 08/01/2008 1.0

    8 */

    9

    10 #include <iostream>

    11 #include < string >

    12 #include <cstdlib>

    13

    14 using namespace std;

    15

    16 int main() {

    17 string s = "123" ;

    18 double n = atof(s.c_str());

    19 //int n = atoi(s.c_str());

    20

    21 cout << n << endl;

    22 }

    Method 2:

    利用stringstream

    这里使用functon template的方式将std::string转int、std::string转double。

    stringstream_to_double.cpp / C++

    1

    /*

    2

    (C) OOMusou 2006 http://oomusou.cnblogs.com

    3

    4

    Filename : stringstream_to_double.cpp

    5

    Compiler : Visual C++ 8.0

    6

    Description : Demo how to convert string to any type.

    7

    Release : 11/18/2006

    8

    */

    9

    #include <iostream>

    10

    #include <sstream>

    11

    #include < string >

    12

    13

    template < class T>

    14

    void convertFromString(T &, const std:: string &);

    15

    16

    int main() {

    17

    std:: string s("123");

    18

    19

    // Convert std::string to int

    20

    int i =0;

    21

    convertFromString(i,s);

    22

    std::cout << i << std::endl;

    23

    24

    // Convert std::string to double

    25

    double d =0;

    26

    convertFromString(d,s);

    27

    std::cout << d << std::endl;

    28

    29

    return 0;

    30

    }

    31

    32

    template < class T>

    33

    void convertFromString(T &value, const std:: string &s) {

    34

    std::stringstream ss(s);

    35

    ss >> value;

    36

    }

    源文档 < http://www.cnblogs.com/oomusou/archive/2006/10/10/525647.html >

string转double


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论