質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

17442閲覧

小数点以下に0が来た場合のフォーマット

_ali

総合スコア14

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2018/09/07 07:47

いつもお世話になっております。

vb.netで文字列のフォーマットに悩んでいます。
数字が入力され、ボタンを押した時、小数点以下に0が続いていた場合その0を省いて表示したいのです。


2.00000→2
111.0111→111.0111
3.666000→3.666

電卓を作っているので演算子を押したときに履歴に処理された数字が入るようにしたいです。
一部ですが基本的には下のようにコードを組んでいます。

vb

1'結果エリアの数字と入力された演算子を履歴エリアに追加 2 lblRecord.Text = lblAns.Text + strOpe 3 m_strOldtxt = lblAns.Text 4 5 '演算子が連続で入力されていたら 6 ElseIf m_strSansyo = "+" OrElse m_strSansyo = "-" OrElse m_strSansyo = "*" OrElse m_strSansyo = "/" Then 7 8 '末尾の演算子を削除して入力された演算子を追加する 9 lblRecord.Text = lblRecord.Text.Remove(lblRecord.Text.Length - 1, 1) 10 lblRecord.Text += m_strOperator

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

正規表現を使用した方法です。
1行目は、変数strcutの小数点以降の数字より、末尾の0(複数OK)を除いたものに置き換えます。
2行目は、上記処理で末尾に小数点が残った場合、それを取り除きます。
(2行目は正規表現でのコードを書きましたが、末尾が小数点だったら、それを取り除く、という方法でもOKです。)

VB.NET

1 strcut = System.Text.RegularExpressions.Regex.Replace(strcut, "(.[1-9]*)0+$", "$1") 2 strcut = System.Text.RegularExpressions.Regex.Replace(strcut, ".$", "")

投稿2018/09/08 02:28

kenshirou

総合スコア772

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

末尾から数字にぶつかるまでの文字数を検索し、その分を削除することで解決しました。

Friend Sub Check_Cat(ByRef strcut As String) Dim Intindex As Integer 'どこからカットするかのチェック用 Dim chrNumFound As Char() = {"1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c} '検索文字 'どこまでカットするか検索(数字に当たるまで) Intindex = strcut.LastIndexOfAny(chrNumFound) '末尾から数字までカット strcut = strcut.Remove(Intindex + 1) End Sub

投稿2018/09/07 09:25

_ali

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenshirou

2018/09/08 02:20

これだと、strcut = 100の場合、結果が1になってしまいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問