回答編集履歴
5
追記
answer
CHANGED
@@ -16,4 +16,13 @@
|
|
16
16
|
|
17
17
|
> 加えて、例えば3桁の有効数字を考える場合に1.2ではなく1.20と表示する、0.01ではなく0.0100と表示するなど、表示方法についても洗練させられればと考えています。
|
18
18
|
|
19
|
-
これについては、簡便な方法が無いか検討中です。
|
19
|
+
これについては、簡便な方法が無いか検討中です。
|
20
|
+
```Python
|
21
|
+
with decimal.localcontext() as ctx:
|
22
|
+
...
|
23
|
+
n += 1
|
24
|
+
print(n) # => 1.24
|
25
|
+
|
26
|
+
n -= 1
|
27
|
+
print(n) # => 0.24 これが 0.240 にならないか
|
28
|
+
```
|
4
修正
answer
CHANGED
@@ -2,18 +2,13 @@
|
|
2
2
|
それを浮動小数で表現するのには限界があります。decimalモジュールなどを利用しましょう。
|
3
3
|
```Python
|
4
4
|
import decimal
|
5
|
-
from decimal import Decimal
|
6
5
|
|
7
|
-
|
8
6
|
with decimal.localcontext() as ctx:
|
9
7
|
ctx.prec = 3 # 有効桁数を設定
|
10
8
|
ctx.rounding = decimal.ROUND_HALF_UP # いわゆる四捨五入を丸め方に設定
|
11
9
|
|
12
|
-
# 有効桁数は
|
10
|
+
# 有効桁数は即座に適用される
|
13
|
-
n =
|
11
|
+
n = ctx.create_decimal('0.2345')
|
14
|
-
print(n) # => 0.2345
|
15
|
-
|
16
|
-
n = 1 * n
|
17
12
|
print(n) # => 0.235
|
18
13
|
```
|
19
14
|
|
3
追記
answer
CHANGED
@@ -17,4 +17,8 @@
|
|
17
17
|
print(n) # => 0.235
|
18
18
|
```
|
19
19
|
|
20
|
-
**参考**: [decimal --- 十進固定及び浮動小数点数の算術演算 — Python 3.9.0 ドキュメント](https://docs.python.org/ja/3/library/decimal.html)
|
20
|
+
**参考**: [decimal --- 十進固定及び浮動小数点数の算術演算 — Python 3.9.0 ドキュメント](https://docs.python.org/ja/3/library/decimal.html)
|
21
|
+
|
22
|
+
> 加えて、例えば3桁の有効数字を考える場合に1.2ではなく1.20と表示する、0.01ではなく0.0100と表示するなど、表示方法についても洗練させられればと考えています。
|
23
|
+
|
24
|
+
これについては、簡便な方法が無いか検討中です。
|
2
修正
answer
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
有効数字って、十進表記することを前提に決められていますよね?
|
2
2
|
それを浮動小数で表現するのには限界があります。decimalモジュールなどを利用しましょう。
|
3
3
|
```Python
|
4
|
+
import decimal
|
4
|
-
from decimal import Decimal
|
5
|
+
from decimal import Decimal
|
5
6
|
|
6
|
-
with localcontext() as ctx:
|
7
|
-
# 有効桁数を設定
|
8
|
-
ctx.prec = 3
|
9
7
|
|
8
|
+
with decimal.localcontext() as ctx:
|
9
|
+
ctx.prec = 3 # 有効桁数を設定
|
10
|
+
ctx.rounding = decimal.ROUND_HALF_UP # いわゆる四捨五入を丸め方に設定
|
11
|
+
|
10
12
|
# 有効桁数は計算結果に適用される
|
11
|
-
n = Decimal('
|
13
|
+
n = Decimal('0.2345')
|
12
|
-
print(n) # =>
|
14
|
+
print(n) # => 0.2345
|
13
15
|
|
14
16
|
n = 1 * n
|
15
|
-
print(n) # =>
|
17
|
+
print(n) # => 0.235
|
16
18
|
```
|
17
19
|
|
18
20
|
**参考**: [decimal --- 十進固定及び浮動小数点数の算術演算 — Python 3.9.0 ドキュメント](https://docs.python.org/ja/3/library/decimal.html)
|
1
修正
answer
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
有効数字って、十進表記することを前提に決められていますよね?
|
2
2
|
それを浮動小数で表現するのには限界があります。decimalモジュールなどを利用しましょう。
|
3
3
|
```Python
|
4
|
-
from decimal import Decimal,
|
4
|
+
from decimal import Decimal, localcontext
|
5
5
|
|
6
|
+
with localcontext() as ctx:
|
6
|
-
# 有効桁数を設定
|
7
|
+
# 有効桁数を設定
|
7
|
-
|
8
|
+
ctx.prec = 3
|
8
9
|
|
9
|
-
# 有効桁数は計算結果に適用される
|
10
|
+
# 有効桁数は計算結果に適用される
|
10
|
-
n = Decimal('1.2345')
|
11
|
+
n = Decimal('1.2345')
|
11
|
-
print(n) # => 1.2345
|
12
|
+
print(n) # => 1.2345
|
12
13
|
|
13
|
-
n = 1 * n
|
14
|
+
n = 1 * n
|
14
|
-
print(n) # => 1.23
|
15
|
+
print(n) # => 1.23
|
15
16
|
```
|
16
17
|
|
17
18
|
**参考**: [decimal --- 十進固定及び浮動小数点数の算術演算 — Python 3.9.0 ドキュメント](https://docs.python.org/ja/3/library/decimal.html)
|