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

回答編集履歴

2

d

2019/02/19 05:40

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,4 +1,10 @@
1
1
  Java の Double型は primitive 型の double をラップしてオブジェクトにしたもので、これに該当する型は Python では float になります。
2
2
 
3
3
  decimal の [公式ドキュメント](https://docs.python.jp/3/library/decimal.html) には「decimal — 十進固定及び浮動小数点数の算術演算」と書いてあるとおり、double とは異なるものですので、Java の Double 型の計算結果と同一にしたい場合は Decimal で実装されている箇所はすべて float に置き換える必要があります。
4
- Java の double と Python の float は IEEE754 の浮動小数点規格に従っているので、計算結果が同一になることが保証されています。
4
+ Java の double と Python の float は IEEE754 の浮動小数点規格に従っているので、計算結果が同一になることが保証されています。
5
+
6
+ | |32bit 浮動小数点数 (単精度)|64bit 浮動小数点数 (倍精度)|
7
+ |:--|:--:|--:|
8
+ |C/C++言語|float|double|
9
+ |Java|float|double|
10
+ |Python|なし (外部ライブラリでは numpy の float32)|float|

1

d

2019/02/19 05:40

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,3 +1,4 @@
1
1
  Java の Double型は primitive 型の double をラップしてオブジェクトにしたもので、これに該当する型は Python では float になります。
2
2
 
3
- [公式リファレ](https://docs.python.jp/3/library/decimal.html) には「decimal — 十進固定及び浮動小数点数の算術演算」と書いてあるとおり、double とは異なるものですので、Java の Double 型の計算結果と同一にしたい場合は Decimal で実装されている箇所はすべて float に置き換える必要があります。
3
+ decimal の [公式ドキュメ](https://docs.python.jp/3/library/decimal.html) には「decimal — 十進固定及び浮動小数点数の算術演算」と書いてあるとおり、double とは異なるものですので、Java の Double 型の計算結果と同一にしたい場合は Decimal で実装されている箇所はすべて float に置き換える必要があります。
4
+ Java の double と Python の float は IEEE754 の浮動小数点規格に従っているので、計算結果が同一になることが保証されています。