凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 265338
  • 博文数量: 619
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5320
  • 用 户 组: 普通用户
  • 注册时间: 2022-03-07 15:28
个人简介

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、cdn、云电脑、大数据及ai等全线产品和场景化凯发app官方网站的解决方案。

文章分类

全部博文(619)

文章存档

2024年(170)

2023年(247)

2022年(202)

我的朋友
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: 云计算

2023-05-19 10:10:40

本文分享自天翼云开发者社区《》,作者:****彬

cdn网关超大range计算方法-凯发app官方网站


一、目前cdn网关openresty中的lua遇到两个超大数值,计算两个数值的差、和是不支持的,因为lua支持{banned}最佳大的数值的位数大小是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位从头进行分割({banned}最佳后一段可能小于10位),记a1、a2……an,b1、b2……bn,此时a1的长度=b1的长度,以此类推,保证两个字符串的每一段数据的长度是一致的,方便后续计算;

4、字符串转为数字:an和bn转为数字;

5、借位: a1必然大于b1,比较a2与b2,如果a2

6、递归计算:分段计算得出结果,r1=a1-b1,r2=a2-b2……rn=an-bn,得到结果之后,把r1到r2转成字符串,{banned}最佳后r1到rn拼接起来得到{banned}最佳终计算结果。

结果:lua超大数的表示以及计算方法,其中方法包含:数值转换、补位、分段切割、借位、递归计算,从而得到{banned}最佳终结果

阅读(247) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图