掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
textboxに入力した有効桁数で円周率を表示するには? (ID:142122)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 案1も案2もプログラムにするとなると手が付けられません。勉強不足で申し訳ないです。 (1) フォームに、NumericUpDown / TextBox を貼ります。 NumericUpDown が小数点以下桁数の指定、TextBox が円周率の表示先です。 (2) NumericUpDown のプロパティを、以下のように設定しておきます。 Maximum = 任意の値 Minumum = 0 TextAlign = Right ThosandSeparator = True Value = 2 (3) TextBox のプロパティを、以下のように設定しておきます。 Multiline = True (False のままだと読みにくいので) ReadOnly = True ScrollBars = Vertical Size = 複数行見える程度の高さ Text = "3.14" (4) フォームに、以下のコードを記載します。 Public Class Form1 Private Const PI As String = "1415926535897932384626433832795028841971693993751058209749445923078164062862" Private Sub NumericUpDown1_ValueChanged() Handles NumericUpDown1.ValueChanged TextBox1.Text = "3." & Strings.Left(PI, CInt(NumericUpDown1.Value)) End Sub End Class これで完成です。NumericUpDown の数値を▲▼で変更するか、あるいは 数値をキーボードから入力して Enter すると、円周率が表示されます。 NumericUpDown1.Maximum は、定数 PI の最大桁数に合わせておいてください。(上記サンプルでは 76 桁) なお定数 PI の部分は、先に紹介した http://www.kisaragiweb.jp/pi/pi1m.htm から 「10桁毎の空白」「100桁毎の改行」「5000桁毎の区切り」を除去した数値を割り当てます。 ちなみに、この方法で指定できる最大桁数は、およそ6万5千桁となっています。 というのも、VB2008 では一行あたりのサイズが 65535 桁までに制限されているためです。 ただし、 Private Const PI As String = "14159…684198" _ & "41403628727256232144287543022109…833652" _ & "88654365422483020278924170496896…628036" _ & "85645159152570329027569036857129… のように、行継続文字「 _」(半角空白とアンダーバーの組み合わせ)を使って 複数の文字列を連結していく方法を用いれば、より長い文字列値を構築することもできます。 また案1で示したように、このデータを外部ファイルに保持する手法もあります。 この場合、ファイルの読み取りには「System.IO.File.ReadAllText メソッド」を利用できます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.