• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS2000)

ACCESS2000で値の切り捨てをする方法がマイナスの値に対してうまく動かない

このQ&Aのポイント
  • ACCESS2000のモジュールを使って値の切り捨てをしていますが、マイナスの値に対してうまく動作しません。
  • RoundDown関数を使用して値の切り捨てを行っていますが、マイナスの値に対して正しく切り捨てされません。
  • マイナスの値を正しく切り捨てるためには、条件分岐を追加する必要があります。

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

  • ベストアンサー
  • miya_777
  • ベストアンサー率31% (44/140)
回答No.3

ええとですね。 int関数は、負の時は桁上げします。 なのでint関数の替りにFix関数を使って見て下さい。 MyNumber = Int(99.8)  ' 99 を返します。 MyNumber = Fix(99.2)  ' 99 を返します。 MyNumber = Int(-99.8)  ' -100 を返します。 MyNumber = Fix(-99.8)  ' -99 を返します。

その他の回答 (3)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

下記のようにすると正負ゼロとも同じ処理になりますが・・・ Int、Fixどちらでも同じ値でしょう。 質問のモジュールは Abs(s)>=5 でエラー? 'sが正は小数桁方向で作成 Public Function RoundDown2(X As Double, s As Integer) As Double   RoundDown2 = Sgn(X) * Int(Abs(X) * 10 ^ s) / 10 ^ s End Function

noname#1296
noname#1296
回答No.2

負の数の場合、Int関数でなくFix関数を使えばお望みの結果が出るのでは?

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

maokunさん マイナスの値が上手く働かないとはなにを指してますか? X = 1.12 s = 1 A = 1.1 X = 1.12 s = -1 A = 0 X = -1.12 s = 1 A = -1.2 X = -1.12 s = -1 A = -10 となると思いますがどこの答えに納得がいかないのかな?

関連するQ&A

専門家に質問してみよう