C++入門/文字列と数値の変換

柴田祐樹,東京都立大学,情報科学科

文字列と数値の変換について述べる.調べればすぐに出てくるものであるが,標準となるものを紹介しておくことは,初学者の道標として良いだろう.以下に例を示す.

#include <iostream>
#include <string>

int main(){
    const char *p1 = "1.211";
    double d = std::stod(p1);

    d = d + 3;
    std::cout << d << " " << p1 << "\n";
    return 0;
}

実行結果を以下に示す.

4.211 1.211

文字列から数値に変換したことで,演算が行え,その結果が出力に反映されていることを確認できるから,コードは意図した動作をしているとわかる.

以下のような記法も存在する.\mathrm{xey}と書いたら,\mathrm{x\times 10^{y}}を意味することになっている.出力結果はコメントで併記してある.

#include <iostream>
#include <string>

int main(){
    const char *p1 = "3.141e4";
    const char *p2 = "3.141e-4";
    double d1 = std::stod(p1);
    double d2 = std::stod(p2);

    d1 = d1 + 1;
    d2 = d2 + 1;
    std::cout << d1 << " " << d2 << "\n"; // 31411 1.00031
    return 0;
}