No.1ベストアンサー
- 回答日時:
【Form1.vb】
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim value As Integer
If Not Integer.TryParse(TextBox2.Text, value) Then
MessageBox.Show("数値ではない。", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
Try
TextBox1.Text = value.ToEnglish()
Catch ex As FormatException
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class
【IntExtension.vb】
Imports System.Runtime.CompilerServices
Imports System.Text
Module IntExtension
''' <summary>
''' 指定された数値を英語表記に変換します。
''' </summary>
''' <param name="value">数値</param>
''' <returns>数字の英語表記</returns>
<Extension()>
Public Function ToEnglish(value As Integer) As String
Dim result As New StringBuilder()
Dim calcValue As Integer = value
If calcValue > 999 Then
Throw New FormatException("処理可能な数値は999まで")
End If
If calcValue >= 100 Then
Dim truncateValue As Integer = CType(Math.Truncate(calcValue / 100), Integer)
result.Append(IntExtension._toSingleEnglish(truncateValue))
result.Append(" hundred")
calcValue -= truncateValue * 100
End If
If calcValue >= 20 Then
Dim truncateValue As Integer = CType(Math.Truncate(calcValue / 10), Integer)
If result.Length > 0 Then
result.Append(" ")
End If
result.Append(IntExtension._toTyEnglish(truncateValue))
calcValue -= truncateValue * 10
End If
If calcValue >= 11 Then
If result.Length > 0 Then
result.Append(" ")
End If
result.Append(IntExtension._toTeenEnglish(calcValue))
calcValue -= calcValue
End If
If calcValue >= 1 Then
If result.Length > 0 Then
result.Append(" ")
End If
result.Append(IntExtension._toSingleEnglish(calcValue))
calcValue -= calcValue
End If
Return result.ToString()
End Function
''' <summary>
''' 1~10を英語に変換。
''' </summary>
''' <param name="value">対象桁の数値</param>
''' <returns>数字の英語表記</returns>
Private Function _toSingleEnglish(value As Integer) As String
Dim singleNumeric As New Dictionary(Of Integer, String)() From
{
{1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}, {5, "five"},
{6, "six"}, {7, "seven"}, {8, "eight"}, {9, "nine"}, {10, "ten"}
}
Return singleNumeric(value)
End Function
''' <summary>
''' 20,30,40,50,60,70,80,90を英語に変換。
''' </summary>
''' <param name="value">対象桁の数値</param>
''' <returns>数字の英語表記</returns>
Private Function _toTyEnglish(value As Integer) As String
Dim singleNumeric As New Dictionary(Of Integer, String)() From
{
{2, "twenty"}, {3, "thirty"}, {4, "forty"}, {5, "fifty"},
{6, "sixty"}, {7, "seventy"}, {8, "eighty"}, {9, "ninety"}
}
Return singleNumeric(value)
End Function
''' <summary>
''' 11~19を英語に変換。
''' </summary>
''' <param name="value">数値</param>
''' <returns>数字の英語表記</returns>
Private Function _toTeenEnglish(value As Integer) As String
Dim singleNumeric As New Dictionary(Of Integer, String)() From
{
{11, "eleven"}, {12, "twelve"}, {13, "thirteen"}, {14, "fourteen"}, {15, "fifteen"},
{16, "sixteen"}, {17, "seventeen"}, {18, "eighteen"}, {19, "nineteen"}
}
Return singleNumeric(value)
End Function
End Module
この回答へのお礼
お礼日時:2017/02/03 00:48
とっても分かりやすく、詳細な回答ありがとうございます!!!
無事完成させることができました!!!
本当にありがとうございました!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) 詳しい方誰か教えてください 1 2022/04/28 16:32
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- Java Javaの問題なのですが、 永久ループを使って以下に従って数値を出力するプログラムを作成する。 ・1 3 2023/06/06 18:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
SELECTの選択状態を、複数のVAL...
-
ラジオボタンと連動して文字列...
-
テキストボックスに入力された...
-
IEで動くのに、Firefoxで動かな...
-
フォームで入力した値を別のフ...
-
HTML、Javascriptでトグルボタ...
-
JAVASCRIPTで、ボタンを押した...
-
switchを使って四則演算のプロ...
-
クイズ作成:15個の問題から5個...
-
javascriptでhiddenに二次元配...
-
ホームページビルダーのスクリ...
-
プルダウン選択時、既に入力済...
-
チェックボックスがundefinedと...
-
javaスクリプトで、テーブルの...
-
ブラウザ上のテキストボックス...
-
JavaScriptで<select>の<option...
-
【jQuery】input nameの文字列...
-
select内を書き換えることは出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
3桁区切りのカンマをつけたい...
-
VB.NET DateTimeの型について
-
複数のsubmitボタンで押された...
-
テキストボックスに入力された...
-
フォーム内容を上から順番にJav...
-
VBAをJavaScriptに変換したいです
-
javascriptでhiddenに二次元配...
-
大量のselect要素のvalueを短い...
-
フォームで入力した値を別のフ...
-
プルダウン選択時、既に入力済...
-
ラジオボタンと連動して文字列...
-
引数に数値、文字列の混在
-
クイズ作成:15個の問題から5個...
-
クリックの度に加算していくには?
-
setIntervalの間隔を途中で変更...
-
Pythonで会員サイトの自動ログ...
-
selectboxのoptionタグのvalue...
-
JavaScriptによる自動計算フォ...
おすすめ情報