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