質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

3回答

307閲覧

小数や任意の数での四捨五入

mega_ne

総合スコア16

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/06/17 09:17

python

1import bumpy as np 2 3A = 10.51834 4B = np.round(A, 2) 5C = np.floor(A) 6D = np.ceil(A) 7 8print(A, B, C, D)

を実行すると、

python

110.51834 10.52 10.0 11.0

となると思います。

これらのうち、例えば"np.floor"を見るとAの切り捨てで10.0になるのですが、これを".0"で区切るのではなく任意の数で区切りたいです。具体的には".5"で区切るとするならばnp.functionを仮にこの機能のある関数として
np.function(10.51834) = 10.5
です。np.floorのような関数でこれを実現することはできますでしょうか。特にnumpyにこだわっているわけではないので、その他のモジュールでも大丈夫です。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

質問を文字通り解釈すると、9.5以上10.5未満を9.5に、10.5以上11.5未満を10.5に、、、、と言うことなりますが、合ってますか?

Python

1y = np.floor(x-0.5)+0.5

投稿2019/06/17 14:19

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mega_ne

2019/06/18 01:27

0.5だとこれで大丈夫だと思うのですが、 A = 10.51834 n = 0.01(上で言う0.5の役割です) で四捨五入して A' = 10.52 になるようにするにはどのようにすればよいでしょうか。
otn

2019/06/18 04:11 編集

四捨五入?質問では切り捨てになってますが、また別の質問と言う事ですか?
mega_ne

2019/06/18 05:43

すみません、勘違いしていました、切り捨てでA'=10.50です。
otn

2019/06/18 06:20

もう一度質問を書き直してください。
mega_ne

2019/06/19 07:55

すみません。
guest

0

numpy.around — NumPy v1.16 Manualdecimals引数を使うというのがやりたいことでしょうか?

python

1import numpy as np 2 3A = 10.51834 4B = np.round(A, 1) 5C = np.round(A, 2) 6D = np.round(A, 3) 7 8print(A, B, C, D) # => 10.51834 10.5 10.52 10.518 9

ただ、ceil, floorでは同等の機能が提供されていないっぽいので、やるのは難しいかもしれません。

投稿2019/06/17 11:27

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mega_ne

2019/06/18 01:33

numpy.aroundだと任意の桁ではできました。ありがとうございます。 「ただ、」の後のceilやfloatの件については、例えば小数第3位で切り捨てして10.51にしたり、逆に切り上げして10.52にするような機能がなさそうと言うことでしょうか。
mega_ne

2019/06/19 09:48

わかりました、ありがとうございます。
guest

0

10倍して四捨五入して10で割る
100倍して四捨五入して(以下略
1000倍して(以下略

投稿2019/06/17 09:21

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mega_ne

2019/06/18 01:36

ありがとうございます。これだととてもシンプルにできます。これも活用しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問