回答編集履歴
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)
         | 
