c言語でint配列をdoubleに変換
c言語でマイコンプログラムを作成しています.
int型の配列をdoubleに変換するために以下のプログラムを記述し,テストしました.
int a[4] = {0,0,1,8};
char s[4];
double d;
char *temp;
sprintf(s,"%d%d%d%d",a[0],a[1],a[2],a[3]);
//文字列charをdoubleに変換
d = strtod(s,&temp);
望む結果は 18 ですが,なぜか上記結果は 1800 となりました.
試しに
int a[4] = {1,2,3,4};
と,1234と表示されました.
上記より,出力値が左詰めのようになっています.
試しにVisual Studio 2013 C++で同様のプログラムを実行すると,所望の結果を得ることが出来ました.
プログラムがおかしいのでしょうか?それともマイコンのコンパイラのバグでしょうか?
お分かりになられる方がいらっしゃいましたら,ご教授宜しくお願い致します.
お礼
ありがとうございました. やってみます.