いつも助けられています。
Accessのデータ型についてどなたか教えてください。
長整数型は整数しか指定できないのはわかります。
ただし、10.5と入れると「10」で、「10.6」と入れると「11」になるのがわかりません。
小数点処理は、四捨五入ではないのでしょうか?
何か特別な規則があるのでしょうか?
お分かりになる方、よろしくお願いします。

A 回答 (3件)

かきこ間違えでした。

すみません
>0からの差が合計で1.0ですよね((1-0.5)+(1-0.6)+(1-0.7)+(1-0.8)+(0.9)=1.5)



1からの差が合計で1.5ですよね((1-0.5)+(1-0.6)+(1-0.7)+(1-0.8)+(0.9)=1.5)

です。
    • good
    • 0
この回答へのお礼

大変ありがとうございます。
よくわかりました。
なるほど、四捨五入とは、小学校で覚えて単純なものでないことが良くわかりました。
Excelという言葉が大変ヒントになりました。
EXCELの技術情報に教えていただいたとおり「銀行型」として存在しました。
あれ以来、公式な見解が無いものかと毎晩探し回っていました。
ご丁寧な説明をして頂けたおかげで、よりはっきりとわかりました。
何度もありがとうございました。

お礼日時:2002/03/07 04:10

またまた、こんにちわ


探せなかったですか・・・きっとどこかにあるとは思いますが
簡単な補足をしておきます。
普通の四捨五入だと
0.1、0.2、0.3、0.4
の4つが切り捨てで(0も含めると5つ)
0からの差が合計で1.0ですよね(0.0+0.1+0.2+0.3+0.4=1.0)
0.5、0.6、0.7、0.8、0.9
の5つが切り上げですよね
0からの差が合計で1.0ですよね((1-0.5)+(1-0.6)+(1-0.7)+(1-0.8)+(0.9)=1.5)
そうすると切り上げの方が多いですよね。
結局普通の四捨五入だと切り上げの方に計算が偏ってしまうわけです。
これを解決するためにそのような計算結果になるようです。
Accessだけでなくエクセルでも採用されているようです。
なにやら「銀行型」とか「ISO」とか呼ばれているようですが?
    • good
    • 0

それは誤差を少なくする丸め方だったようなきがします。


0.5を偶数の方に丸めるはずなので

7.5→8
8.5→8
9.5→10
10.5→10
11.5→12

という風になります。
確か「おしえてgoo」でも出ていたような気がします。
詳しくはここで検索してみては?
    • good
    • 0
この回答へのお礼

ありがとうございます。
なるほど、教えてもらったとおりになります。
しかし、小数点第2位が入ると必ず繰り上がります。
(10.51等)おしえてgooでは探しきれませんでした。
いずれにしても、早々の回答感謝します。

お礼日時:2002/03/05 04:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q簡単に小数点以下3桁までの液密度を求めたい

よろしくお願いします。液体の密度を簡便な方法で短時間に求める方法を教えてください。飲むヨーグルトのような液体で密度は0.68程度
です。今やっている方法は、1000CCのメスシリンダーにサンプリングして電子天秤で重量を測定し、サンプル重量/1000で求めています。ただ、粘性があってガラスにこびりつきますので測定した後のメスシリンダーの掃除が大変です。2000CCのガラスビーカーも使って見ましたが、いずれにしても測定後の掃除が必要です。サンプル量が少ないと誤差が多いので1.5Lから3L程度までを考えています。
ペットボトルも使って見ましたが結構精度はあるようです。
測定したら容器はポイ捨てできれば最高です。

Aベストアンサー

簡単で精度の高い方法があるのかどうかは分かりませんが・・・
洗浄にはどんな方法を用いていますか?
溶媒を工夫してみてはいかがでしょうか?

Q五捨五入

エクセルで五捨五入を行う場合は、どのような数式を作成すればよいのでしょうか。また、VBAでround関数を使うと五捨五入になると聞いたのですが、どのようなユーザー定義になるのですか。よろしくお願いします。

Aベストアンサー

こんにちは。

通常、偶数丸め(銀行型丸め)というと思いますが、ExcelのVBAでは、偶数丸めというのは、Excel2000 から採用されましたので、歴史的にも浅いです。いわゆる、2進の計算で、浮動小数点誤差丸めに、正式な名称「最近接偶数丸め」として出てくるだけで、実務上でワークシートなどで使う場を知りません。統計には出てくるそうですが、なぜ、銀行型丸め(Banker's Rounding)というのか、そういう歴史的な背景を私は知りません。

ご質問者さんが、どういう状況で必要になるのか少し興味を持ちました。以前にもそのような質問に出会ったことがありました。

現実的な対応は、VBAのユーザー定義関数を使うにしても、原理は、以下のようになるはずです。以下の数式を見れば分かるとおり、

丸める桁が、奇数の場合、その下の桁の数字を四捨五入、偶数の場合は、下の桁が上の桁の半分よりも小さい場合は切り捨てになりますね。

=IF(MOD(INT(MOD(ABS(A1),10)),2),
SIGN(A1)*ROUND(ABS(A1),0),
SIGN(A1)*ROUND(ROUNDDOWN(ABS(A1),0)+(ABS(A1)>(ROUNDDOWN(ABS(A1),0)+0.5))*0.5,0))

小数点第一位の場合は、

=IF(MOD(INT(MOD(ABS(A1)*10,10)),2),
SIGN(A1)*ROUND(ABS(A1),1),
SIGN(A1)*ROUND(ROUNDDOWN(ABS(A1),1)+(ABS(A1)>(ROUNDDOWN(ABS(A1),1)+0.05))*0.05,1))

少し、数式は、ややこしいですが、理屈は、単純なことだ思います。

質問者さんが、銀行型丸めを要求している話で、既存のVBAのRound関数をそのまま使う分には、出された結果がそのとおりだと思います。

>少数桁が大量にあった場合(?)は、どのように設定すればよろしいでしょうか。
>このVBAをしようした場合の有効桁は2ケタということになりますでしょうか。

そのままの計算でしたら、有効桁数は関係ないのではありませんか?
つまり、浮動小数点の無限小数が存在していても、判定が、その半分よりも大きい・小さいには、有効桁数はありませんね。

>たとえば、2.501だった場合は「2」にはならず「3」になるということでしょうか。

私が説明してよければ、こういうことになると思います。
1桁で丸める場合は、1桁が偶数2だから、その下の桁の数値0.501が、丸める桁の半分0.5よりも多いので、四捨五入されて、3になります。2.5でしたら、半分[よりも]大きくない(以上ではなくて)ので、切捨てになるという仕組みだと思います。だから、Excelの仕様の小数点第16位以降は別としても、基本的には有効桁数は関係ありませんね。

ただ、私は実際には出会ったことのない計算です。

こんにちは。

通常、偶数丸め(銀行型丸め)というと思いますが、ExcelのVBAでは、偶数丸めというのは、Excel2000 から採用されましたので、歴史的にも浅いです。いわゆる、2進の計算で、浮動小数点誤差丸めに、正式な名称「最近接偶数丸め」として出てくるだけで、実務上でワークシートなどで使う場を知りません。統計には出てくるそうですが、なぜ、銀行型丸め(Banker's Rounding)というのか、そういう歴史的な背景を私は知りません。

ご質問者さんが、どういう状況で必要になるのか少し興味を持ちました...続きを読む

Q数値を小数点二桁にしたい

セルに小数点十桁くらい入っているのですが、
表示を小数点二桁にしています。
表示ではなくて、実際の値を小数点二桁に
置き換えたいのですが、簡単に置き換える方法は
ありますか?

Aベストアンサー

>表示を小数点二桁にしています

この状態で。

ご利用のエクセルのバージョンがご相談に書かれていませんが、エクセルのオプション(たとえばエクセル2007以降では「詳細設定」)で「表示桁数で計算する」のチェックを一度入れてOKすると、実際の数字が小数点2ケタに置き換わります。

QAccess 倍精度浮動小数点型について。。。

アクセスの、倍精度浮動小数点型で定義したテーブルを作成しました。
で、その項目に 99999999 とデータを入力した場合にデータが100000000
に自動変換されてしまいました。 
このような自動変換について何か情報をお持ちのお方、お教え願います。
また、使用しているオフィスは office2000 です。

追記
8桁以上の数値入力では、数値の丸めが発生しました
7桁以下の場合は、丸めは行われませんでした。

よろしくお願いします。

Aベストアンサー

  何で丸められるかはほかの詳しい方にお任せするとして、どうしても必要な場合を除いて浮動小数点はヤメた方がいいですよ。
 小数点以下4桁以上必要になる事がまずないので自分は通貨型を使っています。

Q大量な小数点について

今回自作で、簡単なベンチマークテストをするために
何千という円周率を求めるプログラムをC言語で作成しようと思っています。
円周率を求めるプログラムは、簡単なストーマーの公式を用いて行おうと思っています。アルゴリズムは理解できているのですが、大量の小数点をC言語でどのように表現しようか考えているとこですが、思いつきません。
どなたか、何千という小数点を扱う方法の伝授をお願いします。

Aベストアンサー

FMT
で検索するとπの計算ソフトが見つかります。
下のURLには何千と言う桁数の計算方法が書いてあります。
また、
RSAの本で橋本晋之介さんの書かれた本にも
多倍長整数の計算のサンプルがあります。
他にも多倍長の数値の計算を説明した本はあります。
あとは、検索して本を買って下さい。

参考URL:http://www.dept.edu.waseda.ac.jp/math/ushiro/ushiro/program/pi.htm

Qアクセスのデータ形式で「長整数型」とはどんなものですか

ACCESS 2003 です。
アクセスのデータ形式で「長整数型」というのがありますが、他の[整数型]
とはどこがどのように違うのでしょうか、また、どのような場合に使うのでしょうか。

以上宜しくお願いします。

Aベストアンサー

こちらがまとまっていますね。
http://www.geocities.co.jp/Foodpia/2035/study/access/kihon/exp02_02.htm

フィールドの値を越えない範囲で最小のサイズを選択するようにします。

Q小数点以下

簡単なコトだと思うのですが・・・
『小数点以下3位未満の端数は、切り捨てる』とは
0.12345の場合、どうなるのですか?

『小数点以下3位以下の端数は、切り捨てる』とは
0.12345の場合、どうなるのですか?

申し訳ありませんがよろしくお願いします。

Aベストアンサー

『小数点以下3位未満の端数は、切り捨てる』とは
0.12345の場合、どうなるのですか?

「未満」は小数点以下第3位を含まない、つまり第4位を切り捨てます。
ですから、
0.123です。


『小数点以下3位以下の端数は、切り捨てる』とは
0.12345の場合、どうなるのですか?

「以下」は小数点以下第3位を含む、つまり第3位を切り捨てます。
ですから、
0.12です。

Qstringのデータ型はメモ型とテキスト型どちらがいいのでしょうか?

こんばんは。
アクセスで
100文字のデータを入力したい場合、
フィールドのデータ型は
テキスト型にしてフィールドサイズを100にするのと、
メモ型にするのとどちらがいいのでしょうか?

Aベストアンサー

私も、No.1の方と同じく「テキスト型でフィールドサイズ指定」を
推奨します。

ただ、元々は(といっても私が知ってるのはAccess97以降ですが)、
・テキスト型:
  文字数の上限が小さいが、インデックスを設定可能
・メモ型:
  文字数の上限が大きいが、インデックスは設定不可
ということで、

a)サイズの上限に引っかかる場合はメモ型
b)完全一致検索(+先頭一致検索も?)や並べ替えを行う必要がある
 (かつ、サイズが255文字以内)ならテキスト型、

という使い分けだったと思うのですが(以前の回答もその前提)、
http://oshiete1.goo.ne.jp/qa3188809.html

改めて調べてみたところ、Access2002以降ではメモ型の場合にも
インデックスが作成可能になっていました(汗)
http://support.microsoft.com/kb/302525/ja
(『詳細』の項目のところに、「この現象は、Microsoft Access 2000
 より前のバージョンの Microsoft Access では発生しません。
 これは、Jet 3.5 以前ではメモ型フィールドにインデックスを付ける
 ことができないためです。」とあります:
 でもAccess2003のヘルプ(テーブルのデザインビューで『データ型』
 のところにフォーカスを移動してF1キーを押す)には、以前のまま
 「メモ型、ハイパーリンク型、および OLE オブジェクト型のフィールド
 には、インデックスを設定できません。」と書かれているのですが(汗))


・・・ということなので、「文字数を制限したいかどうか」で決めればいい、
ということではないかと思います。
(従って、「100文字まで」と上限を設定したい今回の場合はテキスト型、と)

私も、No.1の方と同じく「テキスト型でフィールドサイズ指定」を
推奨します。

ただ、元々は(といっても私が知ってるのはAccess97以降ですが)、
・テキスト型:
  文字数の上限が小さいが、インデックスを設定可能
・メモ型:
  文字数の上限が大きいが、インデックスは設定不可
ということで、

a)サイズの上限に引っかかる場合はメモ型
b)完全一致検索(+先頭一致検索も?)や並べ替えを行う必要がある
 (かつ、サイズが255文字以内)ならテキスト型、

という使い分けだったと思うのですが(以...続きを読む

Qエクセル2007で平均値を小数点以下第一位にする方法を教えてください。

いつもお世話になります。
先日エクセルを2007にしました。
平均値を出したのですが、小数点以下第4位まで表示されました。
これを小数点以下第一位までの表示にしたいのですが、
どうしたらいいですか?
以前はボタンひとつで簡単にできたのに…(泣)
ご存知のかた教えてください。
どうぞよろしくお願いします。

Aベストアンサー

そのボタンは「ホ-ム」タブの「数値」グループにある「小数点以下の・・・」ボタンのことではないでしょうか。

QACCESS2000数値型⇒テキスト型変換

ACCESS2000でクエリーで例えば25.0の数値を"25.0"そのままの形の文字列に変換したいのですが、Formt関数とか使っても"25"になってしまいます。"25.0"と表示させる方法ないでしょうか?お願いします。

Aベストアンサー

> 「#」は値が該当の桁の値がゼロ、または存在しないときに表示を抑止することを意味し、
> 「0」は該当の桁の値がゼロ、または存在しないときに0を表示することを意味します。

下記に訂正します。

「#」は値が該当の桁が存在しないときに表示を抑止することを意味し、「0」は該当の桁が存在しないときに0を表示することを意味します。


人気Q&Aランキング