問題タブ [atof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
621 参照

c++ - メモリリーク strtok & atof

おい!

この関数を使用して、ファイルから 2 次元配列に行列を読み込みたいと思います。行列には、列と同じ数の行があります。そして、strtokで行をスペースで分割したい。行はすでに別の関数でベクトルに読み込まれています(これは機能しました-テスト済み)。だから私は問題を知りません.4列4行の小さなマトリックスでこれを実行しようとしたため、完全に機能しました! ここで、1000 行以上と同じ数の列を持つ大きな行列で試してみました。valgrind から次のエラー メッセージが表示されます。

サイズ 1 ==26501== 0x58A87AB の無効な読み取り: _ _strtod_l_internal (strtod_l.c:538) ==26501== by 0x4015BB: fromVectoEigen(std::vector >&, double**&, int&) (topo.cpp :70) ==26501== by 0x40362B: main (main.cpp:36) ==26501== アドレス 0x0 は、スタック、malloc、または (最近) 解放されていません

コメント/コメント解除の方法を試してみましたが、atof を使用するところまではすべて正常に機能します....これは、小さなマトリックスで正常に機能した原因がわかりません

大きなマトリックスの値は次のようになります: 0.11991517 小さなテスト マトリックスと同様に、0 または 0.1 のような値しかありませんでした。

十分に説明できれば幸いです...必要に応じて詳細をお尋ねください。

0 投票する
4 に答える
914 参照

c++ - 整数に atof を使用する

私はいくつかのコードを(去った人から)継承し、この小さなスニペットを見つけました:

彼が整数型に atoi を使用することを選択した理由は何かありますか? 問題が見当たりません:

ありがとう。

0 投票する
1 に答える
614 参照

android - Android ndk atof()

こんにちは、ndkを使用するAndroidプロジェクトがあります

定義されている ac 関数 atof() があります

しかし、どういうわけか常に0.0になります

なぜアイデアはありますか?

パラメータ nextArg は問題ではないようです

0 投票する
3 に答える
1086 参照

c - ファイル (char) から取得した値を変換し、その値を double の配列に格納する方法は?

ファイルからデータを読み取り、これまでのすべての列と行 (データ ファイル) を取得しています。今、値を 1 つずつ読み取り、値を 2D 配列 (double) に格納しようとしています。getc を使用して値を char として取得しますが、atoi または atof を使用して値を char から double に変換しようとすると、奇妙な値が得られます。

何か提案はありますか?… (私は探し続けます)。申し訳ありませんが、ファイル data.txt があり、このファイルには行と数字の列があります:

1 2 3 4 5

6 7 8 9 10

したがって、データを 2D 配列に格納する必要があります。回答のおかげで、文字列を使用し、すべての値を分割して、すべての値を格納するなどのアイデアがあります。1 行目は string-> array[0][0]、array[0][1] などです。次に、他の行に移動して同じことを行います。

今までいくつかの数値を取得しましたが、data.txt に格納されているものはありません。

0 投票する
1 に答える
423 参照

c++ - atof C++でchar配列のfloatを変換します

同様の問題を探していますが、まだ問題の解決策を見つけることができません。

テキスト ファイルを取得して、別のプログラムで使用するバイナリ ファイルに変換しています。他のプログラムはすべて問題なくコンパイルして出力しますが、ファイル変換に問題があるようです。

入力テキストファイルは次のようになります...

プログラムを実行して (別のプログラムを使用して) バイナリをチェックすると、変換されたファイルが表示されますが、次のようになります。

これはもともと C で書かれたもので、私の教授がバイナリ ファイルを作成するために私たちに与えてくれたコードにそれが反映されているかどうか疑問に思い始めています。助言がありますか?

更新:これは、ファイルを読み取って「チェック」する他のプログラムの機能です

0 投票する
1 に答える
967 参照

c++ - atof を使用して文字列を float に変換すると、最後に非常に小さな 10 進数が生成される

たとえば、「0.10」などの 10 進数値を格納する文字列があります。これをフロートに変換したい。しかし、atof を使用してそれを行うと、得られる数値は本来あるべき値ではありません。私は、10 進数値の数値計算を含むいくつかの複雑なアルゴリズムを作成しているため、最終的な結果が失われています。

これは、私が抱えている問題を説明する簡単なコードです。ここでは、10 進数値を文字列に入れ、atof で float に変換し、cout で出力するだけです。私が得ている結果は、atof が小さな 10 進数を最終値に追加していることを示しています。

出力は次のとおりです。

何か案は?Ubuntu で GNU g++ コンパイラを使用しています。問題を引き起こしているのは、このコンパイラのバグでしょうか? もしそうなら、値をフロートに変換して正しい値を取得する他の方法はありますか? ありがとう。

編集:その質問は、なぜこれが起こるのかについて部分的な説明を提供しますが、それは完全な価値を与えるものではなく、機能する場合と機能しない場合がある単一のソリューションのみを提供します. したがって、この質問を別の質問として開いておくことは有効だと思います。