小数部の切上げについて
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
小数部の切上げについて
msg# 1
itoma
投稿数: 12
小数部の切り上げについて
皆さんMAGICでどのように行われているでしょうか。
四捨五入や切捨ては、関数としてデフォルトでMagicに用意されているのですが、この度、仕様上、計算結果の小数部切り上げを考慮しなければならないようなプログラムを作成することとなり、どうやったらMagicで容易に切上げ計算を行えるか考えております。
みなさんは切上げをどのように実施されていますか?
既に実施されていらっしゃる方おりましたらお知恵をお貸し下さい。
皆さんMAGICでどのように行われているでしょうか。
四捨五入や切捨ては、関数としてデフォルトでMagicに用意されているのですが、この度、仕様上、計算結果の小数部切り上げを考慮しなければならないようなプログラムを作成することとなり、どうやったらMagicで容易に切上げ計算を行えるか考えております。
みなさんは切上げをどのように実施されていますか?
既に実施されていらっしゃる方おりましたらお知恵をお貸し下さい。
投票数:0
平均点:0.00
Re: 小数部の切上げについて
msg# 1.1
nkmt
投稿数: 1668
小数点第1位で切上げでしたら
0.9を足した結果をFIX(計算結果,10,0)
1.35678+0.9=2.25678 → 2
1.9+0.9=2.8 → 3
FIX(計算式,10,0)とか。
0.9を足した結果をFIX(計算結果,10,0)
1.35678+0.9=2.25678 → 2
1.9+0.9=2.8 → 3
FIX(計算式,10,0)とか。
投票数:0
平均点:0.00
Re: 小数部の切上げについて
msg# 1.2
EijiNagai
投稿数: 65
私の場合は、切り捨てて同じでなかったら最終桁を+1になるようにします。
例えば切り上げて小数点2桁にする場合、
if(a=fix(a,10,2),fix(a,10,2),fix(a,10,2)+0.01)
の様な感じです。(整数部は仮に10桁にしています。)
例えば切り上げて小数点2桁にする場合、
if(a=fix(a,10,2),fix(a,10,2),fix(a,10,2)+0.01)
の様な感じです。(整数部は仮に10桁にしています。)
投票数:0
平均点:0.00
Re: 小数部の切上げについて
msg# 1.3
atushi
居住地: 長野県
投稿数: 30
私は、以下の式を使用しています。
値がマイナスの場合も対応しています。
(式) 値の整数部桁数が、9桁の場合
FIX(値,9,桁)+IF(値=FIX(値,9,桁),0,IF(値<0,-1,1)/10^桁)
(例)
[値]-111.0420
(1) 小数点第1位切上げ[答えは、小数部0桁][桁:0]
[答]-111+(-1/10^0)=-111-1=-112
(2) 小数点第2位切上げ[答えは、小数部1桁][桁:1]
[答]-111.0+(-1/10^1)=-111-0.1=-111.1
(3) 小数点第3位切上げ[答えは、小数部2桁][桁:2]
[答]-111.04+(-1/10^2)=-111.04-0.01=-111.05
(4) 小数点第4位切上げ[答えは、小数部3桁][桁:3]
[答]-111.042+(0)=-111.042
(5) 1の位切上げ[桁:-1] ※整数部の切上げも可能
[答]-110+(-1/10^-1)=-110-10=-120
値がマイナスの場合も対応しています。
(式) 値の整数部桁数が、9桁の場合
FIX(値,9,桁)+IF(値=FIX(値,9,桁),0,IF(値<0,-1,1)/10^桁)
(例)
[値]-111.0420
(1) 小数点第1位切上げ[答えは、小数部0桁][桁:0]
[答]-111+(-1/10^0)=-111-1=-112
(2) 小数点第2位切上げ[答えは、小数部1桁][桁:1]
[答]-111.0+(-1/10^1)=-111-0.1=-111.1
(3) 小数点第3位切上げ[答えは、小数部2桁][桁:2]
[答]-111.04+(-1/10^2)=-111.04-0.01=-111.05
(4) 小数点第4位切上げ[答えは、小数部3桁][桁:3]
[答]-111.042+(0)=-111.042
(5) 1の位切上げ[桁:-1] ※整数部の切上げも可能
[答]-110+(-1/10^-1)=-110-10=-120
投票数:0
平均点:0.00