首页 > 其他分享 >bigNumber的部分使用方法与属性

bigNumber的部分使用方法与属性

时间:2024-07-02 16:56:08浏览次数:19  
标签:bigNumber BigNumber const bigVal int double float 方法 属性

场景:最近做IoT项目的时候碰到一个问题,涉及到双精度浮点型的数据范围的校验问题。业务上其实有三种类型:int、float和double类型三种。他们的范围分别是:

//int
int: ['-2147483648', '2147483647'],

//float
float: ['-340282346638528860000000000000000000000', '340282346638528860000000000000000000000'],

//double (简写方式)

 double: ['-1.7976931348623157E+308', '1.7976931348623157E+308'],
  
// double(具体数值)
['-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', '179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'], // 阿里云的校验范围,精确到17976931348623157

我需要做的工作就是在选择完不同的类型时,校验用户的数在对应的范围里。

其实int和float类型还好吧,但是double这个数太大,超级大,我之前希望可以将这个具体的数可以确定到具体的值,而不是“1.7976931348623157E+308”这种,精确到小数点后16位。不过好在我去咨询了阿里云的IoT平台,提交工单问了这个问题之后,按照他们的来:

按照阿里这个最大的数据来校验即可。

那么也引出了今天的主要内容:bignumber.js

个人觉得这个还是很好用的,因为它最巧妙的在于将一个非常大的数,利用数组,将其分割成为若干的小数,这样就很好控制每一个部分,然后再配合定义好的正负和指数,就可以将这个数表示出来。

然后介绍一下其中的两个很好用的比较大小的函数:

不过首先需要给用户输入的值也经过BigNumber 处理

(1)isLessThan()

import BigNumber from 'bignumber.js'

//输入值
const bigVal = BigNumber(val)

//最小值
const bigMin = BigNumber(min)

//返回 true 或者 false
bigVal.isLessThan(bigMin)


console.log('这个数小于最小值?', bigVal.isLessThan(bigMin))

(2)isGreaterThan()

import BigNumber from 'bignumber.js'

//输入值
const bigVal = BigNumber(val)

//最大值
const bigMax = BigNumber(max)

//返回 true 或者 false
bigVal.isGreaterThan(bigMax)


console.log('这个数大于最大值?', bigVal.isGreaterThan(bigMax))

标签:bigNumber,BigNumber,const,bigVal,int,double,float,方法,属性
From: https://blog.csdn.net/LM0916/article/details/140044501

相关文章

  • 利用单叶函数计算希格斯粒子的方法
    利用单叶函数计算希格斯粒子的方法下面介绍将春秋晚期金剑柄的线段数据代入单叶函数公式中,计算希格斯粒子的图形,按这个图像喷射希格斯粒子达到超光速的目的。相关资料下载网址:链接:https://pan.baidu.com/s/1Ql1nATEeHgj_cBctXCYB_g?pwd=nzjj提取码:nzjj链接:https://pan.baidu.......
  • Windows 查看端口占用情况 & 80端口被占用处理方法
    一.用netstat指令查看是端口占用情况查看所有端口的占用情况 命令格式:netstat[options]-a表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。-n表示只以数字形式显示所有活动的TCP连接的地址和端口号。-o表示显示活动的TCP连接并包括每个连接的进程ID(PID)。查看特定端......
  • go汇编调试方法
    plan9基本知识:首先我们学习如何用vscode+delve来调试go的plan9汇编代码.首先我们用vscode配置好go的运行环境.能正确打印helloworld代码.编写代码://main.gopackagemainfuncmain(){ varaaa=Sum(2,4) print(aaa)}funcSum(x,yint)int//add.sTEXT·Sum(......
  • 喷射氦气高温等离子体达到超光速的方法
    喷射氦气高温等离子体达到超光速的方法马王堆汉墓是西汉初期长沙国丞相利苍及其家属的墓葬,位于中国中部湖南省的长沙市。1972~1974年,考古工作者在这里先后发掘了3座西汉时期墓葬。在马王堆汉墓出土的帛书五星占,记载了古人通过五星的运行进行占卜的卜辞。五星就是金木水火土五星,它......
  • crossover软件如何使用 crossover软件是干嘛的 crossover软件安装激活教程方法 兼容软
    很多苹果用户都想在MacOS系统下流畅地使用Win应用,现在只要安装这款系统兼容软件CrossOver便能实现了。CrossOver以其出色的跨平台兼容性,让用户在Mac设备上轻松运行各种Windows软件,无需复杂的设置或额外的配置,支持多种语言,满足不同国家和地区用户的需求。CrossOver软件是干......
  • 在Windows操作系统中,与文件系统进行交互主要通过一系列的API函数来实现,这些函数包括底
    操作文件系统API与操作系统的文件系统进行交互,涉及到底层的文件系统操作和文件属性管理。不同的操作系统提供了不同的API和机制来执行这些操作,但基本的原理和流程大致相似。文件系统API的基本操作1.文件时间戳(创建时间、修改时间、访问时间)创建时间(CreationTime):表示文件被创......
  • 如何在不能求逆的时候做子集卷积 exp(即便能求逆也比常见方法优雅)
    为什么要求逆?正常做子集卷积exp的时候递推求\(G=\exp(F)\)的系数时要用。什么情况下不能求逆?模\(2^{64}\),或者压根不取模。我们可能会想,算出来肯定除得尽啊,因为组合意义上是不会出现分数的。并非如此,例如我们可能会尝试算\(\exp(x)\cdot\exp(2x)\)的\([x^3]\)处的系......
  • 学习笔记484—Word加载项是灰色怎么解决 Word加载项是灰色的解决方法【详解】
    Word加载项是灰色怎么解决?在Word2016拥有一个加载项的功能,加载项其实就是Word插件,可以实现很多Word自己无法实现的功能,近期有用户发现自己电脑上的Word加载项是灰色的无法使用,这该怎么解决呢?下面我们来看看吧。具体操作如下:1、首先我们打开Word。具体查看图片哦。我这个......
  • Mike21查看网格数量及节点数量的三种方法
    Mike21查看网格数量及节点数量的三种方法`提示:如何查看Mike21查看网格数量及节点数量**前言:**很多新手群友不管是用MIKE自带的网格剖分还是SMS剖分的网格都会遇到个问题,那就是生成mesh后不知道怎么查看网格数量及节点数量。下面由小编拉给大家介绍三种简单的方法吧方法......
  • Mke21统计面积的两种方法
    前言:很多新手群友不懂怎么去统计计算出来指标的包络面积,今天我来给大家介绍两种统计面积的方法。方法一:Output输出面积输出面积可以通过Output勾选Elementarea进行输出网格面积,通过datamanger打开含有Elementarea的DFSU文件,大概框选想要的区域便可在右侧列表里统计面......