

『VB初心者。小数点以下の表示でつまづいています(涙』 (・・・過去質問 解決済み)
では大変お世話になりました。
さて、上記質問は解決したかに思い、お礼もしてして終了したのですが、
検証しておりましたら問題が見つかりました。
以下、質問内容を修正して、再質問します。よろしくお願いしますm(__)m
VB .NET環境
Microsoft Visual Studio / ActiveReportで帳票を作成しています。
DBからの値が、小数点以下ありの場合(例:1.07)の時はそのまま表示し、小数点以下が.00の場合(例:1.00)の時、整数部分のみを表示させたいのです。
質問の『値』ですが、今回の値は小数点第2位までです。
#.00 の時 → # と表示。
#.01~99 の時 → そのまま表示。
としたいのです。
ちなみに、小数点から左(整数部分)の桁は9桁まで入る可能性があります。
前回解決した際は、小数点より右1桁、左1桁で質問してしまったので、
H_数量.Text = Format(Val(H_数量.Text), "0.0")
If Right(H_数量.Text, 2) = ".0" Then
H_数量.Text = Format(Val(H_数量.Text), "0")
End If
と回答いただき、このパターンではうまく動きました。
小数点以下2桁のパターンも、コードを変更し、
H_数量.Text = Format(Val(H_数量.Text), "0.00")
If Right(H_数量.Text, 2) = ".00" Then
H_数量.Text = Format(Val(H_数量.Text), "0")
End If
でOKでした。
しかし、小数点より左9桁、右2桁を試してみると、ダメなのです。
1行目、
H_数量.Text = Format(Val(H_数量.Text), "0.00")
を、
H_数量.Text = Format(Val(H_数量.Text), "#,##0.00")
と変更しても、
小数点左が9桁には対応できません。
"###,###,##0" とか、"000,000,000" とか色々試しましたが、
500.00 の時、 000,000,500 と表示されました。
どのようにコードを書いたら良いでしょうか?
アドバイスお願いしますm(__)m
No.3ベストアンサー
- 回答日時:
はい、こんにちわ。
質問の意味が少しわかりづらいですが、
ようは、整数9桁、少数2桁で、ちゃんときれいに表示されればいいって事ですよね?たぶん・・・
Me.TextBox1.Text = Format(CDbl(TextBox1.Text), "###,###,##0.##")
以上です。
お礼が遅くなりました。
結果をご報告しますと、一番やっかいなヤツでは実現できませんでした。
他の部分のコードまで理解していないと実現できないのかもしれません。
私は知識不十分な上に、編集のために部分的にソースをいじっているだけなので、
全体を把握できていませんので。
ここの部分はもう少し格闘します(><)
しかしそれ以外の簡単な帳票ソースでは実現できました!
シンプルなコードでキレイに収まり、イイ感じです☆
やっかいなヤツ以外、解決です!!
本当にありがとうございました。
またお世話になるかもしれませんが、どうぞよろしくお願い致しますm(__)m
No.5
- 回答日時:
>小数点左が9桁には対応できません。
具体的にどうなりますか?
H_数量.Textに最大文字数の制限とかしていませんか?
あるいはActiveReportの定義上で文字数の制限があるとか、
帳票出力する項目の定義上文字が出力範囲外になってしまって、見えていないだけとか。
画面ならmaxlengthというプロパティを確認するのですが、
ActiveReportは持っていないのでどういうプロパティかわかりませんが。
?val("123456789012.34")が
123456789012.34
?format(val("123456789012.34"),"0.00")が
"123456789012.34"
と表示するので、桁落ち問題ではなさそうですが。
ちなみに、
?Format(cdbl("123.40"),"###,###,##0.##")
"123.4"
で、よい。
"123.40"
と出さない。ということなら、ANo.3の方の回答の方がシンプルでいいと思いますけど。
VBAと違って、VB.net(2005で試してますけど)は
?Format(cdbl("123.0"),"###,###,##0.##")
が
"123."
とならずに
"123"
となるようですから。
この回答への補足
すみません、補足に失礼します。
質問者のszsznowです。
別件に手を焼いていたため、ご回答、まだ試していません。
まずはご報告と思いましてレスしました。
確認しましたらまたご報告いたします。
ありがとうございました。
お礼が遅くなりました。
結果をご報告しますと、一番やっかいなヤツでは実現できませんでした。
しかしそれ以外の簡単な帳票ソースでは実現できました!
アドバイスどうもありがとうございました。
またお世話になるかもしれませんが、どうぞよろしくお願い致しますm(__)m
No.4
- 回答日時:
あと、補足というより、アドバイスです。
このぐらいの事で、IF判定による分岐処理とかやめたほうがいいです。
文字列操作・Format関数 あたりでぐぐれば、沢山関連情報がでてきますので
そちらを一読されることを強くお勧めします。
今回、分かりやすいだろうと思い、Formatを使いましたが、
.NETには文字列操作のやり方が複数存在しています。
http://park5.wakwak.com/~weblab/refStringClass.h …
http://park5.wakwak.com/~weblab/refFormat.html
http://dobon.net/vb/dotnet/string/index.html
http://dobon.net/vb/dotnet/string/inttostring.html
http://adonetvb.com/Learning/StandardFormat.html
お礼が遅れて申し訳ございません。
アドバイスのサイト、ぐぐってHITしたことがあります。
やはりちゃんと勉強していないのがいけないんですよね・・
これを機会に基本を学習したいと思います。
ともあれ、アドバイス、参考になりました。
実は他の部分が関係してまだ完全なる解決とはいっていませんが。
まずはお礼をと思いレスいたしました。
失礼します。
No.2
- 回答日時:
H_数量.Text = Format(Val(H_数量.Text), "#,##0.00")
If Right(H_数量.Text, 3) = ".00" Then
H_数量.Text = Format(Val(H_数量.Text), "#,##0")
End If
では?
すみません、これもダメでした。
If Right(H_数量.Text, 3) ← 質問文で 2 と表記してしまってすみません。
慌てて質問したので。
おそらくコードの他の部分で何か制御しているのですかね?
なにぶん初心者で、全体的に理解できておらず、皆様への質問も中途半端でご迷惑おかけしております・・
皆様の回答をヒントに、私の方でも色々試しますので、引き続きよろしくお願い致します。m(__)m
No.1
- 回答日時:
int(Val(H_数量.Text))=Val(H_数量.Text) then
H_数量.Text=int(Val(H_数量.Text))
end if
みたいな事でどうでしょう
この回答への補足
質問者szsznowです。
補足欄使わせてもらってすみません。
できたかも、、、しれません!!
また先走ってお礼をして解決扱いにするとあとでまたご迷惑をおかけしますので、
またご報告させていただきます。
とりあえず、、ありがとうございました。
お礼が遅くなりました。
結果をご報告しますと、一番やっかいなヤツでは実現できませんでした。
今回は kazneさんの
Me.TextBox1.Text = Format(CDbl(TextBox1.Text.Text), "###,###,##0.##")
を使わせていただきました。
しかしShowMeHowさんのご回答は別の時に使わせていただくと思います。
私の参考コードリストに入れさせていただきました。
ありがとうございました。
gooではまたお世話になると思いますので、今後ともどうぞよろしくお願い致しますm(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- Visual Basic(VBA) テーブルを配列に入れて、元のテーブルの行番号を取得したい 1 2022/08/16 20:15
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- Visual Basic(VBA) Excel VBA ユーザーフォーム内のラベルにテキストボックスの小計を出す方法 5 2022/08/17 14:27
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- Excel(エクセル) TEXT関数(負の値)を集計のため数値に変換したい 5 2022/05/15 23:04
このQ&Aを見た人はこんなQ&Aも見ています
-
VB初心者。小数点以下の表示でつまづいています(涙
Visual Basic(VBA)
-
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
DataGridViewのセル編集完了後に値を設定するには
Visual Basic(VBA)
-
5
visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ
Visual Basic(VBA)
-
6
特定の文字を、入力文字数に含めない方法は(VB.NET)
Visual Basic(VBA)
-
7
VBA:小数点以下の数字を取得できる関数は?
Visual Basic(VBA)
-
8
TextBoxに特定の文字のみ入力を許す
Visual Basic(VBA)
-
9
VBでの入力値制限について
Visual Basic(VBA)
-
10
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
11
VB.net webアプリケーション 戻る機能&画面表示方法(初心者)
Visual Basic(VBA)
-
12
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
13
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
14
DataGridViewで変更した値を反映させたい。
Visual Basic(VBA)
-
15
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
16
文字列で小数点以下の0を削除したい
Visual Basic(VBA)
-
17
DataGridViewで入力チェック後、フォーカスをあてたい
Visual Basic(VBA)
-
18
VB.NET2003 テキストボックスに半角英数字以外入力させない
Visual Basic(VBA)
-
19
CloseとDisposeの違い
Visual Basic(VBA)
-
20
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外のhtmlに飛ばせる。
-
サイトの階層について
-
GoogleMapsAPIを利用したマッシ...
-
SUN BBSの改造方法
-
掲示板(kentさんの所のsunbbs...
-
perlの文法について
-
HTMLの質問
-
複数フィールドの値を一つのVAL...
-
メールフォームの内容を送信者...
-
CGIプログラムの最後に?がつい...
-
データを読み込んだ時・・・・
-
フォームがFirefoxで動作するの...
-
英文にしてください
-
何がおかしいのでしょうか?
-
pythonのコードで教えてください。
-
WEBアンケート
-
formから送信する値について
-
wordの数式について 定積分を書...
-
HDMLについて
-
パスワード認証
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB初心者。小数点以下の表示で...
-
ブックマークからのアクセスを...
-
Lightboxの表示位置に関して質...
-
ローカルテストサーバーと本番...
-
URLバーに日本語を表示させたい
-
フリー素材(屋内サイン)のサ...
-
ファイル自動収集のコマンドの...
-
携帯の画像について
-
フリーズする原因
-
大和ネクスト銀行の銀行コード
-
FORMを中央に表示したい
-
index.html(トップページ)か...
-
Yomi-Searchをhtmlで出力?
-
vsftpd+sslでアップロードできない
-
URLのリダイレクトに関する質問...
-
IEで「file://」プロトコルが使...
-
変数にアンパサンド
-
大分湯布院の観光地とおみやげ
-
Apacheでのリファラーアクセス...
-
proftpdで困ってます。
おすすめ情報