問題タブ [lexical-cast]

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 投票する
1 に答える
462 参照

c++ - マップ タイプ c++ に基づいて csv を解析およびキャストする

csv を読み取り/書き込みし、渡されたマップ (ネストされている可能性がある) に応じて型を推測し、マップにデータを入力するライブラリや例を知っている人はいますか?

これには、再帰的なテンプレート化されたコードが含まれる可能性があります。

つまり map<int, map< double, map< string, double > > > 、123,93.003,BLAH,42.24 の形式の csv が必要です。

または map<Date, map< string, vector< double > > > // arbitary length vector 2013 年 1 月 1 日、BLAH、0.1、0.2、0.3、0.4.....0.99

ありがとう。

0 投票する
0 に答える
850 参照

c++ - 文字列が数値かどうかを C++ チェックする

an が数値かどうかを確認する必要がありstd::stringます。数値とは、整数または小数点付きの数値 (基数 10) のいずれかを意味します。

私はlong long気にしない外部のものを提供する制限に問題はありません。ブーストはありませんが、コピーしましたlexical_cast

文字列が実際に機能することを確認するためにキャストするようdoubleですが、私が考えていないコーナーケースがあるかどうか疑問に思っています。


編集

浮動小数点数

私は C++0x/C++11 を使用していないため、正規表現を使用して浮動小数点数を簡単に検証することはできません。そして、文字列を自分で解析する必要がないようにしようとしています。これは、何も欠落していないことを確認するために、さらに単体テストを行う必要があることを意味します。

NaN を使用すると、プロパティfloat1 != float1があることはわかっていますが、GCC はこれを台無しにします。

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

c++ - スピリット浮動小数点数パーサーの精度を高める

boost::lexical_cast とブースト スピリットの解析を比較すると、奇妙なことに気付きました。文字列をフロートに解析しようとしています。何らかの理由で、精神は非常に不正確な結果をもたらします。例: lexical_cast を使用して文字列 "219721.03839999999" を解析すると、219721.03 が得られますが、これはほぼ問題ありません。しかし、スピリットを使用すると(以下のコードを参照)、「219721.11」が表示されますが、これは問題ありません。なぜそれが起こるのですか?

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

c++ - レキシカルキャスト文字列を2倍にブースト

私はあなたの助けが欲しい変換の問題に直面しています. 私は gcc4 コンパイラを使用していますが、gcc4 の使用はかなり制限されています。

std::string を double に変換したい。

ちなみに、私も試しatofましたが、まだ同じ問題があります。で示される正しい値を取得するためにistringstreamwithを使用する方法はありますか?setprecission(2)aAmount

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

c++ - boost::lexical_cast int を文字列にゼロでパディング

生成された名前でファイルを作成する必要があります。boost::lexical_cast整数を に変換するために使用しますstd::string。パディングゼロで文字列を取得する可能性はありますか; 私にはありません。サポートするものはc++11 toolsすべてありMSVS 2008ます。

例 :

ps sprintf の使用はお勧めしません。

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

c++ - Boost の lexical_cast はいつ使うべきですか? それは最終手段のメカニズムですか?

Boost はlexical_cast数値 (または任意のオブジェクト) を文字列に変換し、元に戻します。std::stringstreamたとえば、物事をsにストリーミングする代わりに、それをもっと使用しようとする必要がありますか? それとも、最終手段のメカニズムですか?

2 つの代替アプローチの例を次に示します。

また

(ただし、私の質問はより一般的であることに注意してください)。

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

c++ - オーバーロードされた演算子 ">>" での bad_lexical_cast 例外

列挙型の演算子 ">>" をオーバーロードしました:

私が得ている出力:

「boost::exception_detail::clone_impl」のインスタンスをスローした後に呼び出される Hello World 終了

' what(): 字句キャストが正しくありません: ソース型の値をターゲットとして解釈できませんでした

lexical_cast_39.hpp (1155) から例外がスローされます。

演算子は、空の文字列を除くすべての値に対して機能します。オペレーターから返される入力ストリームは、最初から同じストリームです。

そのような問題に対する許容可能なアプローチは何ですか? ありがとう!

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

c++ - Casts ユーティリティの名前空間を実装する方法

Casts多数のキャスト関数を保持する名前空間を生成するとします。

boost:lexical_castアプローチが本当に好きです。例えば:

Casts私の質問は、エレガントで統一された堅牢な方法で実装するための他の可能なアプローチはありますか? 私にとって理想的な方法は、ネイティブの軽量アプローチを採用することです。