zoukankan      html  css  js  c++  java
  • 将string转换为double(转)

    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
    4Filename    : stringstream_to_double.cpp
    5Compiler    : Visual C++ 8.0
    6Description : Demo how to convert string to any type.
    7Release     : 11/18/2006
    8*/

    9#include <iostream>
    10#include <sstream>
    11#include <string>
    12
    13template <class T> 
    14void convertFromString(T &, const std::string &);
    15
    16int 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
    32template <class T> 
    33void convertFromString(T &value, const std::string &s) {
    34  std::stringstream ss(s);
    35  ss >> value;
    36}
  • 相关阅读:
    Redis-10 Bitmap位图基本操作
    Redis学习-09 hyperloglog基本操作
    Redis学习-08 Geospatial地理位置详解
    Redis学习-07 Zset有序集合
    Redis学习-06 Hash哈希基本操作
    部分知识路径
    Docker 容器中安装vi、ifconfig、ping命令
    Java new一个对象的过程超级详解
    SVN
    创建ssm项目
  • 原文地址:https://www.cnblogs.com/buffer/p/1270679.html
Copyright © 2011-2022 走看看