跳到主要内容

使用高精度数字 NumericPicker

基础使用组件

高精度数字 NumericPicker 会让前端和后端传输的数字值从 number 类型变成 string 类型(因为 number 类型浏览器不支持高精度)。

例如如下图,有 2 个字段,其中 count 是通过普通数字 NumberPicker 组件输入的值,而 largeNumeric 是通过高精度数字 NumericPicker 输入的值,前者直接就是数字,而后则是转换成字符串的数字。

number-api-difference

使用方式是直接使用组件库里的 高精度数字 NumericPicker 就行。

numeric-component

此时,如果你没有额外需求,只需要使用该组件就行,不需要做任何其余操作,一切都可以正常工作。

在 JS 代码里操作高精度数字

由于数字已经使用字符串表示了,所以不能直接对起进行四则运算加减乘除,需要使用特定的方法进行操作。

我们提供三方库 bignumber.js 进行操作。

下列是在平台里使用的示例:

  1. 在表单级别勾选需要预先加载 bignumber.js

load-bignumber.js

  1. 在 JS 代码里进行操作

use-bignumber.js

示例 JS 代码如下:

const { BigNumber } = libraries;
let x = new BigNumber('1234567890123456789.123456789012345678');
x = x.plus('0.0000000000000001');
console.log(x.toString());

保存去查看浏览器控制台,结果如下图所示,可以看到对 1234567890123456789.123456789012345678 进行加 0.0000000000000001 的结果为 1234567890123456789.123456789012345778

use-bignumber.js-result

完成的 bignumber.js 官网文档点这里查看:bignumber 官方文档

API

完整的 NumericPicker API 参考在此处 NumericPicker