
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こーゆー事?
地上最強のプログラミング言語、ANSI Common Lisp。
CL-USER> (/ (round (* 123.456789 1000)) 1000.0)
123.457
CL-USER>
ただし、本音を言うとLisp系言語では一般に、
> 小数点第3位で「四捨五入」しなさいという問題があったとします
ありません。
何故なら、発想が「プログラミング言語は小数しか扱えない」って前提の問題だから、ですよね。
Lisp系言語では一般に、分数が扱えて、これはフツーの言語じゃ扱えないケースが多いですね(Rubyや、最近やっとPythonでも扱えたりするみたいですが<- ただしメンドかった気がする)。
CL-USER> (/ 1 3)
1/3
CL-USER>
だから「分数で正しい数値を扱える」Lisp系言語だと、丸めがどーの、って意識する必要がないんですよ。いつでも分数が扱える。勝手に約分してくれる。常に(有理数範疇では)「誤差が無い」正確な数値を扱える。
要するにめったに四捨五入をする必要がないですし、結局、出力時に「どう出力するのか」だけ考えればいいだけなんで、誰もそんな「小数点第3位で四捨五入する」とか言うお題とか考えもしないのです。
写真: (Emacsに)インストールしたらスライムだった件(謎

>ありません。
何故なら、発想が「プログラミング言語は小数しか扱えない」って前提の問題だから、ですよね
誰もそんなこと言ってない
質問も理解できない人の回答に意味がないことにすら理解できない人なんですね
No.3
- 回答日時:
decimal.Decimal#quantizeで '0.01',ROUND_HALF_UP を指定。
pythonです。
No.2
- 回答日時:
プログラミング言語というより、コンピュータが提供する数値計算機能の知識が大事です。
数値計算には、整数化と浮動小数点化(実数化)というものがあります。
前者では、浮動小数点(実数)の小数部を切り捨てる操作です。
これをうまく使うと、質問者がやりたいことができます。
『小数点第3位で四捨五入』なら、
まず、四捨五入する『桁』を『1の位』になるようにします。
それは、その数に 1,000 を掛けます。
そこで数を整数化します。
これで『小数点第4位以下を切り捨てます。』
そのうえで、1,000 を掛けて得た数の『1の位』に5を足します。
これで、『1の位』が5以上ならば上の桁が1増え、そうでなければ(4以下なら)上の方は変わりません。
これが『1の位』を『四捨五入』する操作です。
『小数点第3位』に対する操作は終わりました。
『小数点第3位で四捨五入』とは、『小数点第2位』までが答えですから、『小数点第3位』はもう捨てていいわけです。
なので、整数演算で数を10で割ります。
これで『小数点第3位』は切り捨てられました。
これで数は『小数点第2位』が『1の位』になっています。
最後に10で割った時に、『1の位』が『小数点第3位』から『小数点第2位』に変わったということです。
そこで、この数を浮動小数点(実数)に変え、もとの位取りになるように 100 で割ります。
以上が、質問者のやりたいことを実施するプロセスです。
以下はそれをプログラム化したものです。
int i, j, k
real a, b, c, d
a = 123.456789
b = a*1000.0
i = int(b)
j = i+5
k = j/10
c = float(k)
d=c/100.0
特に言語は意識して書いていません。
Fortran や Basic ならこのまま実行できるでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- TOEFL・TOEIC・英語検定 僕は英語がかなり得意で、テストでもノー勉で80点台を取るような人です。周りの人にも言われるほど得意で 5 2022/12/08 19:07
- 日本語 意味とは何か? どこにあるのか?(Ⅱ) 4 2022/04/21 13:35
- 日本語 「が」についての叩き台です。ご感想をお聞かせください。 93 2022/09/29 14:11
- 高校 テスト勉強について 中間テストの結果がかえってきたのですがあまりよくありませんでした。 現代の国語と 2 2023/06/05 00:46
- 数学 オートマトンの問題がわかりません。 2 2022/07/13 12:47
- 中学校 理科だけが極端に苦手 5 2022/09/10 14:18
- 高校 読解力をつけたい 2 2023/06/10 15:11
- 高校 現代文が壊滅的 5 2022/10/15 22:37
- 中学校受験 中学受験 3 2022/11/13 21:17
- 大学受験 高三です。1ヶ月で偏差値があがりました。 共通テスト模試マーク6月(進研模試)で英語(リーディング) 7 2022/10/11 21:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
端数処理における「小数以下」...
-
雇用保険料の計算式について(E...
-
COBOLの計算方法
-
5%割引の際の、小数点以下の扱...
-
駐車場賃料の日割り計算について
-
数字の double 型 を int型...
-
勤務の稼働時間の計算がわかり...
-
今投稿して解決したのですが 更...
-
Excel有効数字の丸め方「0捨1入」
-
50銭以下切り捨て51銭以上切...
-
右ビットシフト
-
切り捨てて百の位までのがい数...
-
数字の下二桁を削除したい
-
MATLABで小数を整数にするには?
-
負の数の四捨五入の方法
-
なぜ消費税10%は×1.1なのですか...
-
法人税・消費税修正申告納付の仕訳
-
電卓で指数計算できますか?
-
高速料金を請求する場合の消費...
-
時給制の業務委託時、請求書の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
5%割引の際の、小数点以下の扱...
-
雇用保険料の計算式について(E...
-
駐車場賃料の日割り計算について
-
Access 1000以下を切り捨てる関数
-
COBOLの計算方法
-
端数処理における「小数以下」...
-
勤務の稼働時間の計算がわかり...
-
Excel有効数字の丸め方「0捨1入」
-
今投稿して解決したのですが 更...
-
50銭以下切り捨て51銭以上切...
-
数字の下二桁を削除したい
-
負の数の四捨五入の方法
-
切捨てする関数はありますか?
-
「未満と以上」使う範囲。
-
MATLABで小数を整数にするには?
-
切り捨てて百の位までのがい数...
-
ACCESSの切り上げ
-
excel関数で四捨五入以外の切り...
-
3013円の70%offはいくらですか?
-
数字の double 型 を int型...
おすすめ情報
なんだか程度の低い回答ばかりでがっかりでした
正直、君らが語る程度の能書きなんてどうでも良いんだわ
小学生程度でも理解できる、質問の意味すら理解できない人まで登場する始末