問題タブ [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.
c++ - std::atof または std::stof (c++11) が正しく変換できない ("1.24")
この奇妙な atof/stof 動作を見つけた後、私は少しイライラしています
文字列形式をコンマからドットに変更すると、次のようになります。
誰かがこの問題に遭遇しましたか? ありがとう
バート
c++ - sscanf_s または atof を使用して char * を float に変換すると精度が低下するのはなぜですか?
浮動小数点値のみを含む char * を float 型に変換しようとしていますが、sscanf_s と atof の両方で同じ無効な結果が生成されます。
出力:
答えを確認するために同様の質問を見たとき、私はそれらの解決策を試みましたが無駄でした.
char* を float または double に変換する
ここで与えられた解決策は、「stdlib.h」を含めることでした。その後、atof への呼び出しを明示的な呼び出し「std::atof」に変更しましたが、それでもうまくいきません。
atof - atof() は 8e-6 で「e」を読み取ることができません
単語double
から型の値を読み取ろうとしています。char buffer
ファイルには0.032 0.1234 8e-6 4e-3
、などのような値がいくつかあります。これは、関数を使用して word (配列 ' ' に格納されている) を double 値atof()
に変換するコードです。s
num
'e' を含む数字 (8e-6 など) が来るたびに、atof() 関数はそれらに対して 0 を返します。上記の例の値の出力は になります0.032 0.1234 0 0
。
デモ配列で確認しようとしましたが、 atof() は正常に機能しました。
ここで、出力はtd = 8e-05
I have included both<stdio.h>
と<stdlib.h>
です。なぜそれが機能しないのですか?
arduino - 複数の異なる浮動小数点または 10 進数の値を Arduino にシリアルで送信する方法は?
2 つの異なる 10 進数値を Arduino にシリアルで送信しようとしています。Arduino に送信される値は、コンマ (,) で区切られます。
例えば 1.23,4.56 の場合
私の問題は、値が Arduino マイクロコントローラーによって受信されたときに、コードが目的の結果を出力していないように見えることです。
以下のコードに示されている Serial.println コマンドは、変数 value_1 と value_2 に対して次のように出力します。
1.20
0.00
4.50
0.00
だから私が理解していないのは、なぜ両方の変数に追加の「0.00」値があるのかということです。
前もって感謝します。
以下は、@mactro と @aksonlyaks によって提案されたコードの最新の編集バージョンです。目的の出力をまだ取得できていません。したがって、より多くの提案を受け付けています。
現在、次の変数の特定の入力 1.23,4.56 に対して受け取る出力は次のとおりです。
strValue[0]:
1.2
strValue[1]:
1.2
4.5
値_1:
1.20
0.00
値_2:
1.20
4.50
前もって感謝します。
コードの最新バージョンは次のとおりです。
c++ - c++ atof. 間違った入力をチェックするには?
そこで、atof を使用して文字列を double に変換します。ただし、入力が間違っているかどうかを知る必要があります (y564 など)。どうすれば確認できますか?それをさらに操作するには、正しい番号が必要です。