- PR -

設定情報の保存法について

投稿者投稿内容
kanai
ベテラン
会議室デビュー日: 2004/09/13
投稿数: 98
投稿日時: 2005-11-15 16:47
kanaiです。

Doubleからの文字列変換を、ToString("G17")で呼べばParse出来ました。
詳しくはMSDNのDouble.ToString(string)メソッドの解説を参照してください。

サンプルコードは下記の通りです。
(C#には慣れていないのでつたないコードですが・・・)
コード:

double d1 = double.MaxValue;
///string s = d1.ToString()だとParseが失敗する
string s = d1.ToString("G17");
double d2 = double.Parse(s);
if (d1.Equals(d2))
{
Console.WriteLine ("OK");
}
else
{
Console.WriteLine ("NG");
}





[ メッセージ編集済み 編集者: kanai 編集日時 2005-11-15 16:52 ]
笊頭刹那
ベテラン
会議室デビュー日: 2005/10/17
投稿数: 55
お住まい・勤務地: オーストラリア
投稿日時: 2005-11-15 17:21
>インスタンスの値が 15 桁よりも大きい場合、 ToString は、予期される数値ではなく PositiveInfinitySymbol または NegativeInfinitySymbol を返します。
なるほど、そういうことだったんですね(MSDNより引用。

ご指摘ありがとうございました、doubleにも対応することができました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-15 17:58
引用:

刹那さんの書き込み (2005-11-15 17:21) より:

インスタンスの値が 15 桁よりも大きい場合、 ToString は、予期される数値ではなく PositiveInfinitySymbol または NegativeInfinitySymbol を返します。


この時ばかりは、System.Double.Parse(d, System.Globalization.NumberStyles.Float) でもダメだとは...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)