[解決済み] C#で文字列をdoubleに変換する
2022-03-05 10:50:17
質問
で区切られたダブルタイプの値を持つ長い文字列があります。
#
-
value1#value2#value3#
その他
それを文字列テーブルに分割しました。そして、このテーブルから一つ一つの要素をdouble型に変換したいのですが、エラーが発生します。型変換に何か問題があるのでしょうか?
string a = "52.8725945#18.69872650000002#50.9028073#14.971600200000012#51.260062#15.5859949000000662452.23862099999999#19.372202799999250800000045#51.7808372#19.474096499999973#";
string[] someArray = a.Split(new char[] { '#' });
for (int i = 0; i < someArray.Length; i++)
{
Console.WriteLine(someArray[i]); // correct value
Convert.ToDouble(someArray[i]); // error
}
解決方法は?
3つの問題があります。
1) 小数点以下の区切り文字が正しくない
異なる文化圏では、異なる小数点以下の区切り記号を使用します。
,
と
.
).
を置き換えると
.
で
,
を実行すると、期待通りに動作するはずです。
Console.WriteLine(Convert.ToDouble("52,8725945"));
2番目のパラメータとしてcultureを受け取るオーバーロードされたメソッドを使用して、ダブルをパースすることができます。この場合
InvariantCulture
(
不変の文化とは
を使用するなど)。
double.Parse
:
double.Parse("52.8725945", System.Globalization.CultureInfo.InvariantCulture);
にも注目してみてください。
double.TryParse
これは多くのオプションで使用することができ、特に文字列が有効な
double
.
2) ダブルが正しくありません
ドットが2つ含まれているため、値の1つは不正確です。
15.5859949000000662452.23862099999999
3) 配列の末尾に空の値があります。
オーバーロードされた
Split
で、空の値を削除します。
string[] someArray = a.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries);
関連
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み] 2つのリストを結合する
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み] 不変の文化とは?