none
ToString の 指数表示 RRS feed

  • 質問

  • こんにちわ。

    掲題の件、浮動小数(float/double)のtoStringにおいて、

    書式指定なしで実行した場合、実行結果が指数表記になる場合と、少数表記になる場合があります。

    1).この振り分け条件は明示的にどこかに記載がありますでしょうか?

     ロケールなどに左右されるものでしょうか?

    #試してみたところ、少数部は5桁、整数部は8桁で境界があるようです。

    例)

    0.00009999999f.ToString() ⇒ 9.999999E-05

    0.0001000001f.ToString(); ⇒ 0.0001000001

    以上 よろしくお願いします。

    2014年1月31日 1:56

回答

  • 探す気がないだけですよね?

    Single.ToString()より

    この ToString メソッドのオーバーロードでは、一般数値書式指定子 ("G") および現在のカルチャの NumberFormatInfo オブジェクトを暗黙的に使用します。

    その下のリンク標準の数値書式指定文字列にある一般 ("G") 書式指定子に説明があります。Single(C#におけるfloat)の場合、7桁で表現できるかどうかが基準で、小数の場合は「0.」が付くため実質5桁というところでしょうか?

    • 回答としてマーク 星 睦美 2014年2月3日 0:54
    2014年1月31日 2:39