亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

CDN網關超大range計算方法

2023-05-17 01:22:03
15
0

一、目前CDN網關openresty中的lua遇到兩個超大數值,計算兩個數值的差、和是不支持的,因為lua支持最大的數值的位數大小是19位,當數值大于 19位的時候,會自動變成指數類型,例如:1.22222e+19,并且兩個同位超大數值比較大小也是不支持的,如下(20位數):

    local a = 11111111111111111111

    local b = 11111111111111111222

    print(a) = 1.1111111111111e+19

    print(b) = 1.1111111111111e+19

    print(a < b) = false (正常結果應為true)

    print(a == b) = true(正常結果應為false)

    因此,結果是無法比較的,也是無法計算,相減等于0。

二、可通過以下方式處理:

1、數值轉換-數字轉為字符串:針對兩個超大數值,數字先轉成字符串,A:大的字符串,B:小的字符串;

2、補位:對B的數值字符串進行補位,前面默認補0,使得兩個字符串長度一致;

3、分割字符串:針對A、B兩個字符串,按照每10位從頭進行分割(最后一段可能小于10位),記A1、A2……An,B1、B2……Bn,此時A1的長度=B1的長度,以此類推,保證兩個字符串的每一段數據的長度是一致的,方便后續計算;

4、字符串轉為數字:An和Bn轉為數字;

5、借位: A1必然大于B1,比較A2與B2,如果A2<B2,則A2向A1借一位,A1=A1-1,A2=A2+10^10,依此類推,最后比較An,Bn,如果An<Bn,則(An-1)=(An-1)-1,An=An+10^(具體位數);

6、遞歸計算:分段計算得出結果,R1=A1-B1,R2=A2-B2……Rn=An-Bn,得到結果之后,把R1到R2轉成字符串,最后R1到Rn拼接起來得到最終計算結果。

結果:lua超大數的表示以及計算方法,其中方法包含:數值轉換、補位、分段切割、借位、遞歸計算,從而得到最終結果

0條評論
0 / 1000
康****彬
9文章數
0粉絲數
康****彬
9 文章 | 0 粉絲
原創

CDN網關超大range計算方法

2023-05-17 01:22:03
15
0

一、目前CDN網關openresty中的lua遇到兩個超大數值,計算兩個數值的差、和是不支持的,因為lua支持最大的數值的位數大小是19位,當數值大于 19位的時候,會自動變成指數類型,例如:1.22222e+19,并且兩個同位超大數值比較大小也是不支持的,如下(20位數):

    local a = 11111111111111111111

    local b = 11111111111111111222

    print(a) = 1.1111111111111e+19

    print(b) = 1.1111111111111e+19

    print(a < b) = false (正常結果應為true)

    print(a == b) = true(正常結果應為false)

    因此,結果是無法比較的,也是無法計算,相減等于0。

二、可通過以下方式處理:

1、數值轉換-數字轉為字符串:針對兩個超大數值,數字先轉成字符串,A:大的字符串,B:小的字符串;

2、補位:對B的數值字符串進行補位,前面默認補0,使得兩個字符串長度一致;

3、分割字符串:針對A、B兩個字符串,按照每10位從頭進行分割(最后一段可能小于10位),記A1、A2……An,B1、B2……Bn,此時A1的長度=B1的長度,以此類推,保證兩個字符串的每一段數據的長度是一致的,方便后續計算;

4、字符串轉為數字:An和Bn轉為數字;

5、借位: A1必然大于B1,比較A2與B2,如果A2<B2,則A2向A1借一位,A1=A1-1,A2=A2+10^10,依此類推,最后比較An,Bn,如果An<Bn,則(An-1)=(An-1)-1,An=An+10^(具體位數);

6、遞歸計算:分段計算得出結果,R1=A1-B1,R2=A2-B2……Rn=An-Bn,得到結果之后,把R1到R2轉成字符串,最后R1到Rn拼接起來得到最終計算結果。

結果:lua超大數的表示以及計算方法,其中方法包含:數值轉換、補位、分段切割、借位、遞歸計算,從而得到最終結果

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0