teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足

2017/05/21 07:48

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -3,11 +3,14 @@
3
3
  area: 2499.847414437687
4
4
 
5
5
  質問者さんのpythonのバージョンは2.7だと思います。むむと思って2.7と3.6の違いを調べてみると
6
- [PEP 238 -- Changing the Division Operator](http://legacy.python.org/dev/peps/pep-0238/)というのが見つかりました。整数同士を除算すると2.7では切り捨て(floor)になってしまうようです。
6
+ [PEP 238 -- Changing the Division Operator](http://legacy.python.org/dev/peps/pep-0238/)というのが見つかりました。整数同士を除算すると2.7では切り捨て(floor)になってしまうようです。3.6では仕様が変わり切り捨てを行わない仕様になったようです。
7
- 3.6では仕様が変わり切り捨てを行わない仕様になったようです。
8
7
 
9
- ここまでわかれば回避として、除数を浮動小数にすればよいことが分かりした
8
+ ここまでわかれば回避として、除数を浮動小数にすればよいらしいことが推測でき
10
9
  limX = 10
11
10
  の行を
12
11
  limX = 10.0
13
- に変更してみてください。期待通りの結果が得られます。
12
+ に変更してみてください。期待通りの結果が得られます。
13
+
14
+ ---
15
+ ※: 整数同士の除算結果が整数になることについて
16
+ これはCやJavaなどのコンパイラー言語の仕様と同様なのでそういう感覚では自然に思えますが、動的な型を持つpythonとしてはちょっと不自然に感じますね。そういう意味で仕様が変更されたのだろうと想像しました。これはなかなか大きな仕様変更ですね。本件で自分も勉強させていただきました。