HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
ファイル一覧
検索
過去ログ
[ スレッド内全3レス(親記事-3 表示) ] <<
0
>>
■1312
/ 親記事)
エクセルで計算結果エラー
▼
■
□投稿者/ たゆー
-(2019/05/16(Thu) 11:47:43)
お世話様です。
エクセルで計算結果が「0」にならないのが発生しています
なぜでしょう
keisan.zip
/
7KB
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■1313
/ ResNo.1)
Re[1]: エクセルで計算結果エラー
▲
▼
■
□投稿者/ たゆー
-(2019/05/16(Thu) 11:50:37)
■
No1312
上記画像です
995×313 => 250×78
20190516.jpg
/
65KB
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■1314
/ ResNo.2)
Re[1]: エクセルで計算結果エラー
▲
▼
■
□投稿者/ ONnoji
-(2019/05/16(Thu) 12:06:04)
2019/05/18(Sat) 00:30:20 編集(投稿者)
2019/05/16(Thu) 14:55:11 編集(投稿者)
2019/05/16(Thu) 12:41:37 編集(投稿者)
2019/05/16(Thu) 12:38:59 編集(投稿者)
2019/05/16(Thu) 12:31:13 編集(投稿者)
2019/05/16(Thu) 12:10:48 編集(投稿者)
> エクセルで計算結果が「0」にならないのが発生しています
> なぜでしょう
浮動小数点(フローティング・実数)の演算では、原理上誤差が生じます。
これは、少数を含む四則演算を行った場合と、除算によって演算結果に少数が含まれていた場合、の両方のケースで発生すると思いますよ。
試しに「エクセル 浮動小数点」でググってみてください。
なお、桐の場合には、実数型がこれに相当します。
ちなみに、桐の数値型や通貨型は、二進化十進数 (BCD、Binary-coded decimal )で演算していますのでこの問題は発生しませんよ。
ご安心ください。
<追記>
> いまネットで調べましたら、マイクロソフトのサポートページに
>>0
.1、0.2、0.3、0.4、0.7、0.8が誤差を発生します。
DOSの頃の dBASE でも、いとも簡単な丸め(四捨五入)処理で誤差が出ますよ。
演算結果に有効桁数以下のごく小さな値を加算して補正する方法が有効でした。
桐の数値型・通貨型は二進化十進数 (BCD、Binary-coded decimal )で演算していますので心配はいりません。
なお、桐の実数型は、ODBCで接続するためのものですよ。
<さらに追記>
■サンプルプロシージャ
手続き定義開始 cmdTestClick( )
変数宣言 自動,実数{ &numFloat }
変数宣言 自動,数値{ &numBcd }
&numFloat = 1100.475
トレース出力 _&numFloat
トレース出力 _#四捨五入( &numFloat, 2 ) , " 1100.48 にならずに桁落ちする"
トレース出力 _#四捨五入( &numFloat + 0.00001, 2 ), " 有効桁以下の値(ここでは、0.00001)を加算して補正する"
&numBcd = 1100.475
トレース出力 _&numBcd
トレース出力 _#四捨五入( &numBcd, 2 )
手続き定義終了
<トレース結果>
:&numFloat : 1100.475
:#四捨五入( &numFloat, 2 ) : 1100.47 1100.48 にならずに桁落ちする
:#四捨五入( &numFloat + 0.00001, 2 ) : 1100.48 有効桁以下の値(ここでは、0.00001)を加算して補正する
:&numBcd : 1100.475
:#四捨五入( &numBcd, 2 ) : 1100.48
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■1315
/ ResNo.3)
Re[2]: エクセルで計算結果エラー
▲
▼
■
□投稿者/ たゆー
-(2019/05/16(Thu) 12:20:23)
■
No1314
に返信(ONnojiさんの記事)
ONnojiさん、さっそくありがとうございます
いまネットで調べましたら、マイクロソフトのサポートページに
> 0.1、0.2、0.3、0.4、0.7、0.8が誤差を発生します。
このような記事がでていました。何年もエクセルを利用していたのに
全然気づきませんでした。
計算式に関数を利用してみます。お騒がせしました
参考ページ
https://answers.microsoft.com/ja-jp/msoffice/forum/all/excel%E3%81%AE%E5%8D%98%E7%B4%94%E3%81%AA%E8%A8%88/e5421c34-8053-4132-a0a6-14729e505376
解決済み!
引用返信
[メール受信/OFF]
削除キー/
編集
削除
このスレッドをツリーで一括表示
スレッド内ページ移動 / <<
0
>>
このスレッドに書きこむ
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
削除キーを覚えておくと、自分の記事の編集・削除ができます。
URLは自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
使用例:
No123 → 記事No123の記事リンクになります(指定表示)。
No123,130,134 → 記事No123/130/134 の記事リンクになります(複数表示)。
No123-130 → 記事No123〜130 の記事リンクになります(連続表示)。
■
解決しましたら最下段にチェックを入れてください
■
引用文は、最小限に、お願いいたします
Name
/
E-Mail
/
└> 関連するレス記事をメールで受信しますか?
NO
YES
/ アドレス
非公開
公開
Title
/
メッセージ中には下記URLと同じURLを書き込まないで下さい
URL
/
Comment/ 通常モード->
図表モード->
(適当に改行して下さい/半角10000文字以内)
■No1314に返信(ONnojiさんの記事) > 2019/05/18(Sat) 00:30:20 編集(投稿者) > 2019/05/16(Thu) 14:55:11 編集(投稿者) > 2019/05/16(Thu) 12:41:37 編集(投稿者) > 2019/05/16(Thu) 12:38:59 編集(投稿者) > 2019/05/16(Thu) 12:31:13 編集(投稿者) > 2019/05/16(Thu) 12:10:48 編集(投稿者) > >>エクセルで計算結果が「0」にならないのが発生しています >>なぜでしょう > > 浮動小数点(フローティング・実数)の演算では、原理上誤差が生じます。 > > これは、少数を含む四則演算を行った場合と、除算によって演算結果に少数が含まれていた場合、の両方のケースで発生すると思いますよ。 > > 試しに「エクセル 浮動小数点」でググってみてください。 > > なお、桐の場合には、実数型がこれに相当します。 > > ちなみに、桐の数値型や通貨型は、二進化十進数 (BCD、Binary-coded decimal )で演算していますのでこの問題は発生しませんよ。 > ご安心ください。 > > <追記> > >>いまネットで調べましたら、マイクロソフトのサポートページに > >>0.1、0.2、0.3、0.4、0.7、0.8が誤差を発生します。 > > DOSの頃の dBASE でも、いとも簡単な丸め(四捨五入)処理で誤差が出ますよ。 > 演算結果に有効桁数以下のごく小さな値を加算して補正する方法が有効でした。 > > 桐の数値型・通貨型は二進化十進数 (BCD、Binary-coded decimal )で演算していますので心配はいりません。 > > なお、桐の実数型は、ODBCで接続するためのものですよ。 > > > <さらに追記> > > ■サンプルプロシージャ > > 手続き定義開始 cmdTestClick( ) > 変数宣言 自動,実数{ &numFloat } > 変数宣言 自動,数値{ &numBcd } > > &numFloat = 1100.475 > トレース出力 _&numFloat > トレース出力 _#四捨五入( &numFloat, 2 ) , " 1100.48 にならずに桁落ちする" > トレース出力 _#四捨五入( &numFloat + 0.00001, 2 ), " 有効桁以下の値(ここでは、0.00001)を加算して補正する" > > &numBcd = 1100.475 > トレース出力 _&numBcd > トレース出力 _#四捨五入( &numBcd, 2 ) > > 手続き定義終了 > > <トレース結果> > > :&numFloat : 1100.475 > :#四捨五入( &numFloat, 2 ) : 1100.47 1100.48 にならずに桁落ちする > :#四捨五入( &numFloat + 0.00001, 2 ) : 1100.48 有効桁以下の値(ここでは、0.00001)を加算して補正する > :&numBcd : 1100.475 > :#四捨五入( &numBcd, 2 ) : 1100.48 > > >
File
/
アップ可能拡張子=> /
.gif
/
.jpg
/
.jpeg
/
.png
/.txt/.lzh/.zip/.mid
圧縮ファイル[lzh,zip]は、事前に解凍してご利用下さい。
1) 太字の拡張子は画像として認識されます。
2) 画像は初期状態で縮小サイズ250×250ピクセル以下で表示されます。
3) 同名ファイルがある、またはファイル名が不適切な場合、
ファイル名が自動変更されます。
4) アップ可能ファイルサイズは1回
100KB
(1KB=1024Bytes)までです。
5) ファイルアップ時はプレビューは利用できません。
6) スレッド内の合計ファイルサイズ:[73/500KB]
残り:[427KB]
パスワード
/
半角小文字で「ケイ・アイ・アール・アイ」を入力
削除キー
/
(半角8文字以内)
解決済み!
BOX/
解決したらチェックしてください!
プレビュー/
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
ファイル一覧
検索
過去ログ
-
Child Tree
-
-
Antispam Version
-