strtok
、1,2,1.0
を使用して文字列から小数点以下の数字を抽出しました。c文字列を先行ゼロを持つ可能性のある小数点以下の数字に変換する正しい方法
UPDATE この場合のフォーマットは0.0 up to 1.0
から制限されます。したがって、小数点以下は小文字の&です。 printfはユーザーのフィードバック&の確認用です。番号はnumber format
のn.n
を要求するライブラリに渡されます。 Perhapse私はメッセージを誤解しているので、cプログラムは数字が1未満の場合にのみ.n
を得る。
これで、第3の数値をn.n
形式のintに変換する必要があります。この形式では、1より小さい場合は先頭にゼロが必要です。
私はint, float, double
とatoi(x), strtoumax
のいくつかの組み合わせを試してみましたが、printf関数で1
または1.0000....
のいずれかを取得しています。
私はprintfを使ってvarを内部的に使う必要があります。 それでは、最高の組み合わせと使用するフォーマットは何ですか?
// third number (this may move position in token order)
????? myNumber;
strcpy(string, strtok(NULL, ","));
myNumber=atoi(string);
printf("the number is %?\n", myNumber);
g_object_set(theItem, "alpha", myNumber, NULL); // accepts n.n only 0.0 -> 1.0
'atoi'文字列を' int'のみに変換します。浮動小数点数の文字列番号には使用できません。ストロークで検索された文字列が浮動小数点数であるかどうかをテストし、[strtof - strtod](http://en.cppreference.com/w/c/string/byte/strtof)を使用して変換する必要があります。 – LPs
['strtof'または' strtod'](http://en.cppreference.com/w/c/string/byte/strtof)? –
'int'? 'n.n'形式で? 'int'は小数点を持たない。先行ゼロもありません。先行ゼロは表示できるものです。 –