C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.98014 の関連記事表示

<< 0 >>
■98014  Re[1]: TextBoxのフォーマット
□投稿者/ 大谷刑部 -(2021/08/25(Wed) 11:38:42)
    No98010 (たかし さん) に返信
    > いつもお世話になっております、たかしです。
    > VB.NETの質問なのですが、TextBoxのフォーマットを「12,345,678」にするために、
    > 次のようなコードを書いてみたのですが、
    > TextBoxの値が「12,345」となって桁が3つ飛んでしまいます。
    > どこが間違いなのでしょうか?どなたか教えて下さい。
    >
    >   TextBox.Text = CStr(Val(TextBox1.Text) + Val(TextBox2.Text) + Val(TextBox3.Text))

    飛ぶというより、3つのテキストボックスの値の三桁以内の整数であると仮定すると、
    val関数通した時点で数値になり、+演算子は足し算にになりますよね。
    8桁の整数にはなり得ないです。

    > If TextBox.Text = "" Then
    >   Exit Sub
    > Else
    >   TextBox.Text = String.Format("{0:##,###,###}", CLng(TextBox.Text))
    > End If
    >

    弁さんの指摘通りTextBox.Text = ""には絶対になりません。
    val関数かけた時点でNothig(vbNullstring)、empty等は全部0に変換されてしまいますから。

    12,345,678としたいのであれば、まず+演算をした時点で、TextBox.Textの値が12345678となっているのを確認する必要がありますよね?

    そもそも、+演算子は足し算か文字列連結かどちらの意図で使おうとしてますか?
    それによって解が変わる気がします。
記事No.98010 のレス /過去ログ170より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -