たびたびの質問大変申し訳ありません。
ACCESSのクエリデザイナにて、フィールド項目で計算を打ち込んでいるのですが、小数点切捨てがどうもうまく動きません。
式は以下のようなものです
Cint(年齢計算の式)
年齢計算の結果は小数になりますが、どうもこれを切り上げてくれているようなのです。
ROUND(年齢計算の式,0)
とやっても結果は同じでした。
いろいろためした結果は以下のような感じです
Cint(10.5) → 10
Cint(11.5) → 12
Cint(100.5) → 100
Cint(101.5) → 102
1の位が0だと切り捨て、それ以外だと切り上げになるのでしょうか?
う~む、ACCESSは本当使いにくいですね。。。
No.5ベストアンサー
- 回答日時:
[イミディエイト]
? Rounds(10.5,四捨五入)
11
? Rounds(10.5,切り捨て)
10
? Rounds(10.5,切り上げ)
11
? Rounds(10.4,四捨五入)
10
? Rounds(10.4,切り捨て)
10
? Rounds(10.4,切り上げ)
11
? Rounds(10.4445,切り捨て,3)
10.444
? Rounds(1110.4445,切り捨て,-3)
1000
Accessには、このような四捨五入、切り捨て、切り上げ関数はありません。
ならば、自作するという手があります。
'
' Rounds関数用
'
Public Const 四捨五入 = 0
Public Const 切り捨て = 1
Public Const 切り上げ = 2
Public Function Rounds(ByVal M As Currency, _
ByVal A As Integer, _
Optional D As Integer = 0) As Variant
Rounds = Sgn(M) * Fix(Abs(M) * 10 ^ D + Abs((A = 0) * 0.5@ + (A = 2) * (Int(M * 10 ^ D) <> (M * 10 ^ D)))) / 10 ^ D
End Function
これは、あくまでも私的に用いている Rounds関数です。
で、この関数でおよそのノウハウは判ります。
ですから、ちょっと Rounds関数の自作に挑戦されたらどうでしょうか?
No.4
- 回答日時:
> ひどい・・・
> そんな機能誰がのぞむのでしょうかね。。
これって、単に質問者さんが関数を間違えているだけなのでは?
「切り捨て」をしたいなら、Cint関数ではなく、Int関数です。
#3さんの言われている、Fix関数との違いは、
Int(-1.3) → -2
Fix(-1.3) → -1
です。ご参考まで...
No.3
- 回答日時:
CInt 関数は、丸めを行うものではなく
型変換のためのものです。
整数型に変換するのですが、
変換方法はアクセスまかせということになります。
他にも CLng、CDbl CCur 等々があります。
少数以下切捨てには、Int 関数、Fix 関数などを使います。
両者の違いなど、詳しくは、VBE のヘルプをご覧ください。
No.2
- 回答日時:
Round関数は銀行型の丸めをします。
Cint関数はもともと、数値を丸める関数ではなくて、データ型を整数型に変換する関数です。
四捨五入をするときは、自分で関数を作る必要があります。
例えば、小数点一位で四捨五入する場合、こんな風にできます。
Int(X+0.5)
Int関数は小数点以下を切り捨てる関数です。
似たような関数に、Fix関数がありますが、負数を丸めるときの動作が違います。もし負数も扱うなら、ヘルプをみて、どちらを使うのが目的にあっているのか検討してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- 高校 有効数字計算 確定した値を含む 2 2023/01/18 06:03
- 計算機科学 インド式かんたん計算法について 2 2022/06/02 04:27
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- その他(教育・科学・学問) 1980 年代後半のバブル経済の頃 日本では預貯金金利が年7%を超えることもあり ました。 金利を7 3 2023/07/21 00:31
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- Excel(エクセル) エクセルでround関数を使わないで四捨五入する方法 10 2022/08/12 15:43
- 怪我 賞与計算における端数処理について 1 2022/06/27 14:34
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンピューターで2進法が採用...
-
Excel 隣のセルが空白以外の場...
-
エクセルについて
-
accessからsqlserverへの移行に...
-
アクセスである時点での年齢を...
-
VBAでエクセルシートを更新...
-
「24日の0時」って・・・
-
エクセルのチェックボックスを...
-
パソコンで購入したデーターが...
-
エクセルで最高値、最低値の日...
-
日付の大小の表現
-
回覧板の日付について質問です...
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
エクセルの列が左右逆に・・・・
-
エクセルで日付別にシートを分...
-
エクセルで数字から名前に変...
-
Excel関数 「日付を入力...
-
日付を差し込み印刷で表示した...
-
履歴書の日付間違いで落ちますか。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 隣のセルが空白以外の場...
-
コンピューターで2進法が採用...
-
アクセスである時点での年齢を...
-
ファイルメーカープロ8で生年月...
-
生年月日から年齢を取得する方法
-
エクセルで四捨五入ではなく、5...
-
【ACCESS】未定義関数が発生。...
-
計算結果をCASE WHENで判断した...
-
ACCESSでの時間外計算方法
-
ファイルメーカーPro7での経過...
-
エクセルでeのマイナス乗の計算...
-
ファイルメーカーで時間の表示...
-
ファイルメーカーで給与計算
-
ファイルメーカーで小数点以下...
-
生年月日から年齢を計算したい。
-
整列の比較回数を表す数式でよ...
-
SQLの質問です。
-
Accessクエリーにて開始日と終...
-
ACCESSのバグ?
-
ファイルメーカーで学年を表示...
おすすめ情報