none
数値から数値文字列への変換 書式設定についての質問 RRS feed

  • 質問

  • 数値から数値文字列への変換についてお伺いしたいことがあります。
    以下のような条件で変換を行いたいのですが、
    どのような書式設定を行えば変換が可能かご教授いただけませんでしょうか。

    ・文字列に変換したい数値
    -9999~9999

    ・文字列書式
    半角8桁、整数文字列、0パディングしない、
    負の場合はマイナス記号を文字列の先頭に付加する


     9999の場合「    9999」
    -9999の場合「-   9999」
        0の場合「       0」

    ご指導お願いいたします。

    2013年12月26日 11:26

回答

  • こんな?

    Console.WriteLine(string.Format("{0: ;'-'}{0,7:0;0}", 9999));
    Console.WriteLine(string.Format("{0: ;'-'}{0,7:0;0}", 0));
    Console.WriteLine(string.Format("{0: ;'-'}{0,7:0;0}", -9999));


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク cow bell 2013年12月30日 6:05
    2013年12月26日 12:36

すべての返信

  • ・マイナス記号
    0 か正数 → スペース
    負数 → 「-」

    ・数値部分
    絶対値

    これを組み合わせればいいんじゃないかしら。

    2013年12月26日 11:51
  • こんな?

    Console.WriteLine(string.Format("{0: ;'-'}{0,7:0;0}", 9999));
    Console.WriteLine(string.Format("{0: ;'-'}{0,7:0;0}", 0));
    Console.WriteLine(string.Format("{0: ;'-'}{0,7:0;0}", -9999));


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク cow bell 2013年12月30日 6:05
    2013年12月26日 12:36
  • galaco様

    ご回答いただきありがとうございました。
    (ご連絡が遅くなってしまい申し訳ありません)

    マイナス記号については、そのような方法で
    できそうだと考えておりましたが、
    具体的な記述がわかりませんでした。

    2013年12月30日 6:05
  • gekka様

    ご回答いただきありがとうございました。
    (ご連絡が遅くなってしまい申し訳ありません)

    具体的な表記についてご教授いただきありがとうございました。解決いたしました。

    ご教授頂いた書式についてMSDNを改めて確認しましたところ、
    下記の記載について私の理解不足でした。


    ○書式指定項目の構文 Indexコンポーネント
    http://msdn.microsoft.com/ja-jp/library/txafckwd(v=vs.110).aspx

    同じパラメーター指定子を指定することによって、
    複数の書式指定項目でオブジェクトのリスト内の同じ要素を参照できます。


    ○カスタム数値書式指定文字列 ";" セクション区切り記号
    http://msdn.microsoft.com/ja-jp/library/0c899ak8(v=vs.110).aspx#SectionSeparator

    セクション区切り記号は、最後の値が書式設定されるときに、
    数値に関連付けられた既存の書式設定をすべて無視します。
    たとえば、セクション区切り記号を使用する場合、
    負の値はマイナス記号を付けずに表示されます。

    2013年12月30日 6:07