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

わんくま同盟

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

C# と VB.NET の入門サイト


(過去ログ 144 を表示中)
■84461 / )  Re[3]: C#での文字数制限について。(期限が近く、急いでいます!)
□投稿者/ 魔界の仮面弁士 (1335回)-(2017/07/06(Thu) 11:58:02)
No84454 (ひかり さん) に返信
> デザインのプロパティから「MaxLength」の数値を変更したところ、

ユーザーからの直接入力が無い場合、MaxLength プロパティの設定は意味がありません。


> 計算結果の桁数が11桁以上になる場合はディスプレイに答えの代わりに「E」と表示されるようにしたいです。

E が表示された後で、btnC 以外が押された場合の対処もお忘れなく。



No84458 (ひかり さん) に返信
> こちらを使わせていただいたところ、たしかに「 . 」が1桁として処理されていました。
> できれば、「 . 」を1桁としてカウントしないプログラムにしたいです。

"." が含まれているかどうか調べる方法は、御自身で既に btnDot_Click で
書かれていますので、それを使えば良いと思います。
マイナスも対処するのであれば同様に。

あるいは txtDisplay.TextLength や txtDisplay.Text.Length の代わりに、
txtDisplay.Text.Replace(".", "").Length を使うという手もあります。


また、(txtDisplay の桁数ではなく)計算結果の桁数を 10 桁制限にするのなら、
> txtDisplay.Text = 値1.ToString();
の部分を
> String text2 = d.ToString();
> txtDisplay.Text = text2;
と同様に、一旦変数に受け取って、text2.Length などで長さ判定をすれば良いかと思います。
ただし小数点以下の扱いには御注意を。


> また、最初に10桁になるよう数字ボタンを押して、「+」などの演算記号を押したところ、
> 続いて押した数字ボタンが画面上には反映されませんでした。(計算結果は正しく表示されます)
isFirst が false で無い時にまで、『if(txtDisplay.TextLength == 10) return;』を
呼び出すようにしてしまったということは無いですか?
うーん。でもそれだと計算結果は正しくならないはずですし…。


>> 小数点以下の桁数については、どのように考えておられますか?
> 小数点以下は、10桁に収まるよう切り捨てたいと思っております。
整数部の桁数を求めて、それが 10 桁を超えていたら "E" 表記。
10 桁以下なら、「10 - 正数数部桁数」が 小数部の桁数なので、
それを Math.Round メソッドに指定するというのはどうでしょう。
返信 編集キー/


管理者用

- Child Tree -