• 締切済み

小数点表示で。

dim a as double dim b , c as integer a=b/c とした時、b/cが割りきれない場合は aを四捨五入して少数第1位まで表示したいのですが その時はどのようにすればよいですか? label1.captin=aとして表示したいのですが label1のdataなんとか・・・プロパティをかえてもだめでした。

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

訂正です 0.3456を小数点第2位で計算するとき 1000倍 → 345.6 0.5をたす → 356.1 整数のみ取得 → 356 1000で割る → 0.356 の部分は 0.3456を小数点第2位で計算するとき 1000倍 → 345.6 0.5をたす → 346.1 整数のみ取得 → 346 1000で割る → 0.346 です。

sakky_t
質問者

お礼

いつもありがとうございます。 少数表示なりました。 ただMe.Label1.Caption = funcRound(a, 2) では エラーになりました。 Me.Label1.Caption = Round(a, 2) にするとうまくいきました。

すると、全ての回答が全文表示されます。
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

0.3456を小数点第1位で計算するとき 10倍 → 3.456 0.5をたす → 3.956 整数のみ取得 → 3 10で割る → 0.3 0.3456を小数点第2位で計算するとき 100倍 → 34.56 0.5をたす → 35.06 整数のみ取得 → 35 100で割る → 0.35 0.3456を小数点第2位で計算するとき 1000倍 → 345.6 0.5をたす → 356.1 整数のみ取得 → 356 1000で割る → 0.356 といった処理になります。 以下のソースを試してください。。。 Sub Main()   Dim a As Double      Dim b, c As Integer      b = 2   c = 3      a = b / c   Me.Label1.Caption = funcRound(a, 2) End Sub 'パラメータ1:ダブル型の数 'パラメータ2:小数点第何位にするかの値 Function funcRound(inDbl As Double, inRoundNum As Long) As Double   Dim wkLng  As Long      wkLng = 10 ^ inRoundNum      funcRound = Int((inDbl * wkLng) + 0.5) / wkLng End Function

すると、全ての回答が全文表示されます。

関連するQ&A