DOBON.NETプログラミング道掲示板

■34167 / 1階層)  numericUpDwonコントロールのvalue
□投稿者/ 魔界の仮面弁士 大御所(1206回)-(2019/02/26(Tue) 18:34:06)
  • アイコン2019/02/26(Tue) 21:35:19 編集(投稿者)

    No34166に返信(geseさんの記事)
    > 環境/言語:[c#6.0] 
    6.0 ということは、最低でも Visual Studio 2015 以上ということですね。


    > NumericUpDownコントロールのValueプロパティに値をセットしようとしました。
    Value プロパティは decimal 型ですので、
    decimal 型の値をセットするべきではありますが、
    整数型から decimal 型への変換は暗黙的に行われるので、
    整数値を代入したとしても、本来は問題無いはずです。


    > 他の3つはValueプロパティに何も入らずに「0」と表示されてしまいます。
    まずは numericUpDown1 の Maximum プロパティを確認してみてください。
    (初期値は 100 です)

    たとえば、Maximum = 100 のままだと、100 よりも大きい値は
    代入できませんので、その場合、Value 値が書き換わることなく、
    直前の値のままになってしまっているのではないでしょうか。


    本来であれば、Minimum〜Maximum の範囲外の値を Value にセットすると
    例外で停止するはずですが、64bit 環境(かつ Windows 8.1 未満)において、
    Form の Load イベント内に記述していた場合、例外が発生しても
    Visual Studio 側で拾えないので、例外を見落としてしまっているのかも。



    > キャストする方法はあるんでしょうか?

    キャストの仕方はそれで正しいです。
    ちなみに末尾に "m" または "M" を付けた場合、decimal 型のリテラルを意味します。

     numericUpDown1.Value = 5.67m;

    小数値を指定する場合は、DecimalPlaces プロパティの設定も忘れずに。



    蛇足ですが、decimal では桁数も管理されるようになっています。
    そのため下記の 2 つは、数値としては同じ値ながらも、
    ToString 時の結果が異なることになります。

    decimal a = 10.0m;
    decimal b = 10.0000m;
    label1.Text = a.ToString();
    label2.Text = b.ToString();
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←numericUpDwonコントロールのvalue /gese →Re[2]: numericUpDwonコントロールのvalue /gese
 
上記関連ツリー

Nomalアイコン numericUpDwonコントロールのvalue / gese (19/02/26(Tue) 18:24) #34166
Nomalアイコン numericUpDwonコントロールのvalue / 魔界の仮面弁士 (19/02/26(Tue) 18:34) #34167 ←Now
  └Nomalアイコン Re[2]: numericUpDwonコントロールのvalue / gese (19/02/27(Wed) 09:54) #34168 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -