亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python學(xué)習(xí):decimal --- 十進(jìn)制定點和浮點運(yùn)算

系統(tǒng) 2240 0

decimal 模塊為快速正確舍入的十進(jìn)制浮點運(yùn)算提供支持。
模塊設(shè)計以三個概念為中心:十進(jìn)制數(shù),算術(shù)上下文和信號。

  • 十進(jìn)制數(shù)是不可變的。 它有一個符號,系數(shù)數(shù)字和一個指數(shù)。 為了保持重要性,系數(shù)數(shù)字不會截斷尾隨零。十進(jìn)制數(shù)也包括特殊值,例如 Infinity ,-Infinity ,和 NaN 。 該標(biāo)準(zhǔn)還區(qū)分 -0 和 +0 。

  • 算術(shù)的上下文是指定精度、舍入規(guī)則、指數(shù)限制、指示操作結(jié)果的標(biāo)志以及確定符號是否被視為異常的陷阱啟用器的環(huán)境。 舍入選項包括 ROUND_CEILING 、 ROUND_DOWN 、 ROUND_FLOOR 、 ROUND_HALF_DOWN, ROUND_HALF_EVEN 、 ROUND_HALF_UP 、 ROUND_UP 以及 ROUND_05UP.

  • 信號是在計算過程中出現(xiàn)的異常條件組。 根據(jù)應(yīng)用程序的需要,信號可能會被忽略,被視為信息,或被視為異常。 十進(jìn)制模塊中的信號有:Clamped 、 InvalidOperation 、 DivisionByZero 、 Inexact 、 Rounded 、 Subnormal 、 Overflow 、 Underflow 以及 FloatOperation 。

  • 對于每個信號,都有一個標(biāo)志和一個陷阱啟動器。 遇到信號時,其標(biāo)志設(shè)置為 1 ,然后,如果陷阱啟用器設(shè)置為 1 ,則引發(fā)異常。 標(biāo)志是粘性的,因此用戶需要在監(jiān)控計算之前重置它們。

快速入門教程

通常使用小數(shù)的開始是導(dǎo)入模塊,使用 getcontext() 查看當(dāng)前上下文,并在必要時為精度、舍入或啟用的陷阱設(shè)置新值:

            
              
                >>
              
              
                >
              
              
                from
              
               decimal 
              
                import
              
              
                *
              
              
                >>
              
              
                >
              
               getcontext
              
                (
              
              
                )
              
              
Context
              
                (
              
              prec
              
                =
              
              
                28
              
              
                ,
              
               rounding
              
                =
              
              ROUND_HALF_EVEN
              
                ,
              
               Emin
              
                =
              
              
                -
              
              
                999999
              
              
                ,
              
               Emax
              
                =
              
              
                999999
              
              
                ,
              
              
        capitals
              
                =
              
              
                1
              
              
                ,
              
               clamp
              
                =
              
              
                0
              
              
                ,
              
               flags
              
                =
              
              
                [
              
              
                ]
              
              
                ,
              
               traps
              
                =
              
              
                [
              
              Overflow
              
                ,
              
               DivisionByZero
              
                ,
              
              
        InvalidOperation
              
                ]
              
              
                )
              
              
                >>
              
              
                >
              
               getcontext
              
                (
              
              
                )
              
              
                .
              
              prec 
              
                =
              
              
                7
              
              
                # Set a new precision
              
            
          

可以從整數(shù)、字符串、浮點數(shù)或元組構(gòu)造十進(jìn)制實例。 從整數(shù)或浮點構(gòu)造將執(zhí)行該整數(shù)或浮點值的精確轉(zhuǎn)換。 十進(jìn)制數(shù)包括特殊值,例如 NaN 代表“非數(shù)字”,正的和負(fù)的 Infinity,和 -0

            
              
                >>
              
              
                >
              
               getcontext
              
                (
              
              
                )
              
              
                .
              
              prec 
              
                =
              
              
                28
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                10
              
              
                )
              
              
Decimal
              
                (
              
              
                '10'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                '3.14'
              
              
                )
              
              
Decimal
              
                (
              
              
                '3.14'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                3.14
              
              
                )
              
              
Decimal
              
                (
              
              
                '3.140000000000000124344978758017532527446746826171875'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                (
              
              
                0
              
              
                ,
              
              
                (
              
              
                3
              
              
                ,
              
              
                1
              
              
                ,
              
              
                4
              
              
                )
              
              
                ,
              
              
                -
              
              
                2
              
              
                )
              
              
                )
              
              
Decimal
              
                (
              
              
                '3.14'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                str
              
              
                (
              
              
                2.0
              
              
                **
              
              
                0.5
              
              
                )
              
              
                )
              
              
Decimal
              
                (
              
              
                '1.4142135623730951'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                2
              
              
                )
              
              
                **
              
               Decimal
              
                (
              
              
                '0.5'
              
              
                )
              
              
Decimal
              
                (
              
              
                '1.414213562373095048801688724'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                'NaN'
              
              
                )
              
              
Decimal
              
                (
              
              
                'NaN'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                '-Infinity'
              
              
                )
              
              
Decimal
              
                (
              
              
                '-Infinity'
              
              
                )
              
            
          

新 Decimal 的重要性僅由輸入的位數(shù)決定。 上下文精度和舍入僅在算術(shù)運(yùn)算期間發(fā)揮作用。

            
              
                >>
              
              
                >
              
               getcontext
              
                (
              
              
                )
              
              
                .
              
              prec 
              
                =
              
              
                6
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                '3.0'
              
              
                )
              
              
Decimal
              
                (
              
              
                '3.0'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                '3.1415926535'
              
              
                )
              
              
Decimal
              
                (
              
              
                '3.1415926535'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                '3.1415926535'
              
              
                )
              
              
                +
              
               Decimal
              
                (
              
              
                '2.7182818285'
              
              
                )
              
              
Decimal
              
                (
              
              
                '5.85987'
              
              
                )
              
              
                >>
              
              
                >
              
               getcontext
              
                (
              
              
                )
              
              
                .
              
              rounding 
              
                =
              
               ROUND_UP

              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                '3.1415926535'
              
              
                )
              
              
                +
              
               Decimal
              
                (
              
              
                '2.7182818285'
              
              
                )
              
              
Decimal
              
                (
              
              
                '5.85988'
              
              
                )
              
            
          

Decimal 也可以使用一些數(shù)學(xué)函數(shù)

            
              
                >>
              
              
                >
              
               getcontext
              
                (
              
              
                )
              
              
                .
              
              prec 
              
                =
              
              
                28
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                2
              
              
                )
              
              
                .
              
              sqrt
              
                (
              
              
                )
              
              
Decimal
              
                (
              
              
                '1.414213562373095048801688724'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                1
              
              
                )
              
              
                .
              
              exp
              
                (
              
              
                )
              
              
Decimal
              
                (
              
              
                '2.718281828459045235360287471'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                '10'
              
              
                )
              
              
                .
              
              ln
              
                (
              
              
                )
              
              
Decimal
              
                (
              
              
                '2.302585092994045684017991455'
              
              
                )
              
              
                >>
              
              
                >
              
               Decimal
              
                (
              
              
                '10'
              
              
                )
              
              
                .
              
              log10
              
                (
              
              
                )
              
              
Decimal
              
                (
              
              
                '1'
              
              
                )
              
            
          

設(shè)定有效數(shù)字的方法

            
              
                from
              
               decimal 
              
                import
              
              
                *
              
              
getcontext
              
                (
              
              
                )
              
              
                .
              
              prec 
              
                =
              
              
                6
              
              
Decimal
              
                (
              
              
                1
              
              
                )
              
              
                /
              
              Decimal
              
                (
              
              
                7
              
              
                )
              
              
                # 結(jié)果為Decimal('0.142857'),六個有效數(shù)字
              
            
          

quantize() 方法

quantize() 方法將數(shù)字四舍五入為固定指數(shù)。 此方法對于 將結(jié)果舍入到固定的位置 的貨幣應(yīng)用程序非常有用:

            
              bb
              
                =
              
              decimal
              
                .
              
              Decimal
              
                (
              
              
                '7.325'
              
              
                )
              
              
                .
              
              quantize
              
                (
              
              decimal
              
                .
              
              Decimal
              
                (
              
              
                '.01'
              
              
                )
              
              
                ,
              
               decimal
              
                .
              
              ROUND_UP
              
                )
              
              
                print
              
              
                (
              
              bb
              
                )
              
              
b
              
                =
              
              decimal
              
                .
              
              Decimal
              
                (
              
              
                '7.325'
              
              
                )
              
              
                .
              
              quantize
              
                (
              
              decimal
              
                .
              
              Decimal
              
                (
              
              
                '.01'
              
              
                )
              
              
                ,
              
               decimal
              
                .
              
              ROUND_DOWN
              
                )
              
              
                print
              
              
                (
              
              b
              
                )
              
            
          
            
              輸出:
7.33
7.32

            
          

Rounding modes

  • decimal.ROUND_CEILING
    Round towards Infinity.

  • decimal.ROUND_DOWN
    Round towards zero.

  • decimal.ROUND_FLOOR
    Round towards -Infinity.

  • decimal.ROUND_HALF_DOWN
    Round to nearest with ties going towards zero.

  • decimal.ROUND_HALF_EVEN
    Round to nearest with ties going to nearest even integer.

  • decimal.ROUND_HALF_UP
    Round to nearest with ties going away from zero.

  • decimal.ROUND_UP
    Round away from zero.

  • decimal.ROUND_05UP
    Round away from zero if last digit after rounding towards zero would have been 0 or 5; otherwise round towards zero.

Context objects

decimal.getcontext()
Return the current context for the active thread.

decimal.setcontext(c)
Set the current context for the active thread to c.


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 在线观看精品91老司机 | 日本a在线视频 | 爱爱免费播放视频在线观看 | 激情福利 | 国产精品色片 | 不卡视频在线观看 | 日韩综合色 | 裸身裸乳免费视频网站 | 日本一级黄色毛片 | 日韩中文字幕一区二区不卡 | 久久精品中文字幕首页 | 精品国产综合区久久久久久 | 日韩五月 | 日韩在线一区二区三区免费视频 | 伊人成人在线观看 | 九九视频只有精品 | 香蕉久久国产 | 日韩成人影视 | 亚洲精品在线观看视频 | 四虎影院永久地址 | 男人天堂视频在线观看 | 黄黄视频免费看 | 色久优优 欧美色久优优 | 亚洲欧洲一区二区三区在线 | 哪个网站能看毛片 | 日本一级毛片私人影院 | 欧美第一视频 | 欧美日韩性猛交xxxxx免费看 | 亚洲国产激情一区二区三区 | 免费一级a毛片免费观看欧美大片 | 波多野结衣三区 | 国产精品久久久久久久久夜色 | 福利午夜在线 | 久热re国产手机在线观看 | 亚洲另类图片专区 | 亚洲一级毛片在线观播放 | 久久黄色免费 | 国产911情侣拍拍在线播放 | 日韩精品国产自在久久现线拍 | 久久.com| 综合视频网 |