
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
#6です
#7の説明はちょつと間違っていたので訂正します
切り捨てについて補足説明をします。
小数点以下2桁目を切りすてる場合
切り捨てとは何かという事になります
10.51=10.5
-10.51=-10.5
である。
とします、実は INTの場合
言語仕様によっては、
-10.51=-10.5となるINTもあります
VB6は-10.51=-10.6と確認しました
負の場合、切り捨てと言うのは-10.51=-10.6とします。
つまり、0より下にする事が切り下げという考えです。
-10.51=-10.5
このようにするには、以下のように、正と負を分けて計算する必要があります
If Y < -1 Then
Y2 = Abs(Y)
Y3 = Int(Y2 * 10 ) / 10
else
Y3 = Int(Y * 10 ) / 10
End If
では、切り上げはというと
If Y < -1 Then
Y2 = Abs(Y)
Y3 = Int(Y2 * 10 + .09 ) / 10
else
Y3 = Int(Y * 10 + 0.9) / 10
End If
とします。
切り上げの場合注意しなければいけないのは
Y3 = Int(Y2 * 10 + .09 ) / 10
この計算式では、負の時おかしくなるという事です
-10.51+.09=-10.42-->-10.5
-10.59+.09=-10.5-->-10.6
となります。
つまり負の時は-.09を付けなければいけないという事です。
つまり、単独でする場合、負の場合
Y3 = Int(Y2 * 10 - .09 ) / 10
となります。
どちらを選択するかは、好みによります。
No.7
- 回答日時:
#6です
切り上げについて補足説明をします。
小数点以下2桁目を切り上げる場合
切り上げとは何かという事になります
10.51=10.6
-10.51=-10.6
である。
とします、実はVBのINTは伝統的に
負の場合、切り上げと言うのは-10.51=-10.5とします。
つまり、0に近づける事が切り上げという考えです。
Fortran言語はINTは
-10.51=-10.6
となります
このようにするには、以下のように、正と負を分けて計算する必要があります
If Y < -1 Then
Y2 = Abs(Y)
Y3 = Int(Y2 * 10 + 0.9) / 10
else
Y3 = Int(Y * 10 + 0.9) / 10
End If
No.6
- 回答日時:
実数 Y を小数点第n位以下で(第n位を有効にする)
と解釈していいでしょうか
1) int(Y*10^n+0.9)/10^n
2) int(Y*10^n)/10^n
となります
No.5
- 回答日時:
すみません、#3の者です。
#3のロジック、微妙に間違ってました。
以下に訂正します。
(1)Yに10のn-1乗を掛ける。
(2)その結果に対して、切り上げの場合0.9を加え、切り捨ての場合何もしない。
(3)その結果を整数で切り捨てる(Int, Fix関数)。
(4)その結果を10のn-1乗で割る(元の桁数に戻す)。
小数点にして切り捨てないと切り捨てられませんでしたね。
考え方は後に解答されている#4さんと同じ考え方です(というより#4さんを見て間違いに気がつきました)。
No.3
- 回答日時:
以下のロジックで対応できます。
(1)Yに10のn乗を掛ける。
(2)その結果に対して、切り上げの場合9を加え、切り捨ての場合何もしない。
(3)その結果を整数で切り捨てる(Int, Fix関数)。
(4)その結果を10のn乗で割る(元の桁数に戻す)。
#ちなみに、Round関数はあくまでも丸め(疑似四捨五入=厳密には四捨五入ではないが四捨五入に近い丸め)であり、切り上げ・切り捨てではありません。
上記の考え方で、(2)で5を加えれば厳密な四捨五入もできます(Round関数のような丸めではなく)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
端数処理における「小数以下」...
-
負の数の四捨五入の方法
-
5%割引の際の、小数点以下の扱...
-
今投稿して解決したのですが 更...
-
勤務の稼働時間の計算がわかり...
-
Excel有効数字の丸め方「0捨1入」
-
ACCESSの切り上げ
-
どうしたらいいですか?
-
「消費税は別途」の解釈
-
生産の「時間当たりの出来高」...
-
協同組合に支払う会費&賦課金...
-
時給制の業務委託時、請求書の...
-
電卓で指数計算できますか?
-
1個あたりの製産時間を算出した...
-
何が矛盾しているのかわからない
-
なぜ消費税10%は×1.1なのですか...
-
高速料金を請求する場合の消費...
-
ニンテンドープリペイドカード...
-
法人税・消費税修正申告納付の仕訳
-
収入印紙の還付金 仕訳について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
5%割引の際の、小数点以下の扱...
-
勤務の稼働時間の計算がわかり...
-
Excel有効数字の丸め方「0捨1入」
-
Access 1000以下を切り捨てる関数
-
駐車場賃料の日割り計算について
-
次の計算式を使って、 利益率12...
-
端数処理における「小数以下」...
-
COBOLの計算方法
-
雇用保険料の計算式について(E...
-
今投稿して解決したのですが 更...
-
50銭以下切り捨て51銭以上切...
-
VBA
-
数字の double 型 を int型...
-
負の数の四捨五入の方法
-
ACCESSの切り上げ
-
エクセル関数を教えてください
-
SwiftのDouble型の四捨五入につ...
-
右ビットシフト
-
MATLABで小数を整数にするには?
-
計算と小数点の切り捨てを同時...
おすすめ情報