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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Q&A

解決済

3回答

1522閲覧

(2+4)/2=3だが、型を判定するとfloatになる理由

tanaka_shota

総合スコア19

Python 3.x

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

0グッド

1クリップ

投稿2019/08/01 02:24

python

1A=2 2B=4 3print(type(A)) 4print(type(B)) 5print(type(A+B)) 6print(type((A+B)/2))

とすると、

python

1<class 'int'> 2<class 'int'> 3<class 'int'> 4<class 'float'>

と返されます。
なぜ、(A+B)/2の結果が整数であってもfloatとして判定されるのでしょうか?

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

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

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

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

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

guest

回答3

0

ベストアンサー

数値演算結果の値がちょうど整数のときは整数型になり、そうでない場合は実数型になるというようなプログラミング言語は多分無いです。
数値演算結果の型は、演算結果の値では無く、演算対象の型と、どの演算子かによってだけ決まります。

整数と実数の区別のある言語では、整数同士の割り算は小数点以下切り捨てて整数にするという言語がCをはじめとして多いです。
Pythonの場合は、割り算演算子に///の2種類あり、整数同士の//の時だけ小数点以下切り捨てで整数になり、それ以外の組み合わせでは商は実数です。

投稿2019/08/01 03:38

otn

総合スコア84555

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

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

maisumakun

2020/06/01 14:18

> 数値演算結果の値がちょうど整数のときは整数型になり、そうでない場合は実数型になるというようなプログラミング言語は多分無いです。 っ「PHP」 除算演算子 ("/") の返す値は浮動小数点数となります。 ただし、ふたつのオペランドがともに整数 (あるいは整数に変換できる文字列) であり、かつ結果が割り切れる場合には整数値を返します。 https://www.php.net/manual/ja/language.operators.arithmetic.php
guest

0

仕様です。整数除算をしたい場合は // を使って下さい。

投稿2019/08/01 02:26

LouiS0616

総合スコア35660

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

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

0

/で割り算するとfloatになります。
整数にしたいなら、//で割り算しましょう

投稿2019/08/01 02:40

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問