オカイ - 問題を言葉にする方法がたくさんあるので、この質問は存在しません。しかし、私はそれが存在しないと思う(あなたはインターネット検索がどのように知っている)s0は私と一緒に耐えてください。値を簡略化する(大きさの減少と表示の順序)
私は、オンラインのクラスのための短いミニゲームプログラムを書いています。それはデジタル "通貨"を伴い、私は大小の "x"の金額を持っているかどうかをユーザーに知らせるために対数的な "チェック"を実装しました。これはちょうど背景です。問題ではありません。
プログラムでは、(メインフォームクラスで)次のものがあります。完全なプログラムは、「お金」の増加
Dim myFragments As Integer
Dim FragmentExponent As Double
Dim myExponent As Double
FragmentExponent = myFragments
myFragments = 0 'insert whatever value to test
Private Sub tmrUnknown_Tick(sender As Object, e As EventArgs) Handles tmrUnknown.Tick
lblMoney.Text = myFragments
myExponent = Math.Log10(FragmentExponent)
If myExponent < 3 Then lblMoneyMagnitude.Text = " "
If myExponent >= 3 And myExponent <= 5 Then lblMoneyMagnitude.Text = "Thousand"
If myExponent >= 6 And myExponent <= 8 Then lblMoneyMagnitude.Text = "Million"
If myExponent >= 9 And myExponent <= 11 Then lblMoneyMagnitude.Text = "Billion"
If myExponent >= 12 And myExponent <= 14 Then lblMoneyMagnitude.Text = "Trillion"
If myExponent >= 15 And myExponent <= 17 Then lblMoneyMagnitude.Text = "Quadrillion"
end sub
...
あなたのアイデアを得るために一定のアップデートが必要となるので、それはタイマ部です。
ラベルにmyMoney値を表示すると、元の変更されていないテキストと絶対値の順番が残ります。 (そして私は上記のコードが問題に対処していないことを理解しています。
質問:最初の3桁の有効数字のみを表示するようにデータ値を変更するにはどうすればよいですか?
それはちょうど私かもしれませんが、私はそれの背後にある数学を計算することに問題があります。 (そして、新しい変数の作成/プログラムの実行方法は私にとってはうまくいくので、それを提案するのを恐れないでください)。
ありがとうございました。
'myExponent'が正しく設定されている場合、値/(10 ^(int)myExponent)'(擬似コード) – doctorlove