Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C/C++で文字列をdouble型に変換する方法を解説

C/C++では、標準ライブラリ関数 strtod() を使うことで、文字列を double 型の数値に簡単に変換できます。ここでは、実際のサンプルコードと実行結果をもとに、その使い方を解説します。

サンプルコード

#include <iostream>
using namespace std;
int main() {
    char s[20] = "18.2894 is a number";
    char *p;
    double result;
    result = strtod(s, &p);
    cout<<"The number after conversion of string : "<<result;
    return(0);
}

実行結果

The number after conversion of string : 18.289400

プログラムの解説

上記のプログラムでは、まず char 型の配列 s[20] を宣言し、「18.2894 is a number」という英数字混在の文字列で初期化しています。続いて、strtod() 関数を呼び出すことで、この文字列の先頭から読み取れる部分を double 型の数値に変換しています。

char s[20] = "18.2894 is a number";
char *p;
double result;
result = strtod(s, &p);

strtod() 関数のポイント

strtod() は第1引数に変換対象の文字列、第2引数には「数値として変換できなかった残りの文字列」へのポインタを受け取ります。この例では、変数 p が「18.2894」以降の「 is a number」という文字列部分を指すことになります。この仕組みにより、文字列中から数値部分だけを正確に抽出できるのが特徴です。

なお、変換が不要な残りの文字列情報が必要ない場合は、第2引数に NULL を指定することも可能です。また、より簡易的な変換を行いたい場合は atof() 関数を使用する方法もありますが、エラー検出ができないため、堅牢性を重視するなら strtod() の利用が推奨されます。

  1. PHPで文字列を数値に変換する方法をわかりやすく解説

    PHPで文字列を数値に変換する方法はいくつかあります。最もシンプルなのは、キャスト演算子を使う方法です。ここでは、基本的な変換方法をサンプルコードとともに紹介します。例1:(int)によるキャストで整数に変換<?php     $str = "150";     $num = (int)$str;     echo "Number (Converted from String) = $num"; ?>出力結果上記のコードを実

  2. C#で16進文字列を16進数値に変換する方法

    C#では、「7D」のような16進表記の文字列を簡単に数値へ変換できます。この記事では、Convert.ToSByte()メソッドとConvert.ToInt32()メソッドを使った2つの代表的な方法を、サンプルコード付きで解説します。 方法1:Convert.ToSByte()を使う まず、変換対象となる16進文字列を設定します。 string str = "7D"; 次に、Convert.ToSByte()メソッドの第2引数に基数「16」を指定して呼び出すことで、16進文字列を数値に変換できます。 Console.WriteLine(Convert.ToSByte(str