• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2003 四捨五入の方法について)

Access2003 四捨五入の方法について

このQ&Aのポイント
  • Access初心者です。ご存知の方がいらっしゃいましたら教えて下さい。
  • 現在以下のようなプロシージャを作成しました。この計算方法だと小数点が切り捨てとなり、例として1000.5円という金額になった場合、1,000円として表示されてしまいます。これを1,001円で表示できるようにしたいのですが、どのようなプロシージャを作成したら良いかご存知の方がいらっしゃいましたら教えて下さい。よろしくお願い致します。
  • 以下プロシージャ Private Sub 課税_AfterUpdate() On Error GoTo 課税_AfterUpdate_Err If (Forms!F_請求書!課税 = 1) Then Forms!F_請求書!消費税率 = 0 End If If (Forms!F_請求書!課税 = 2) Then Forms!F_請求書!消費税率 = 0.05 End If [小計] = Nz(DSum("単価*数量", "Q_請求明細", "[請求番号]=forms![F_請求書]![請求番号]")) [消費税] = Fix([小計] * Nz([消費税率])) [合計] = [小計] + [消費税] 課税_AfterUpdate_Exit: Exit Sub 課税_AfterUpdate_Err: MsgBox Error$ Resume 課税_AfterUpdate_Exit Me.Recalc End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

単価・数量ともに小数点を含まないのであれば、 (単価 1円20銭 など) [消費税] = Fix([小計] * Nz([消費税率])) を [消費税] = Fix(Ccur([小計]) * Ccur(Nz([消費税率],0)) + 0.5) です。 小計 × 消費税だと、浮動小数点型の演算誤差によって 表示上は、1000 と見えていても、内部的には 999.0000000000000000000286 とか 1000.000000000000000000000000023 と値を保持している場合がありますので、Ccur関数で通貨型に変換して 行う必要があります。 小計は変換する必要はないかと思いますが念のため。 これを行わないと、最終的に合計が微妙に合わない?という結果が出る場合が有ります。 Excel の場合ですが、Accessでも同様です。 http://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml

関連するQ&A