微信小程式 大數運算庫

2021-09-01 13:19:42 字數 3760 閱讀 8635

功能:

使用:在需要的.js檔案中引入:

var bignum = require('../../utils/wechatbignumber.js')
方法說明:

函式例項

說明add(x,y)

bignum.add(x,y)

將x,y兩個字串相加,返回值為x+y的結果字串。

subtract(x,y)

bignum.subtract(x,y)

將x,y兩個字串相減,返回值為x-y的結果字串。

multiply(x,y)

bignum.multiply(x,y)

將x,y兩個字串相乘,返回值為x*y的結果字串。

divide(x,y)

bignum.divide(x,y)

將x,y兩個字串相除,返回值為x/y的結果字串。注意:結果只保留整數部分。

mod(x,y)

bignum.mod(x,y)

將x,y兩個字串取餘,返回值為x%y的結果字串。注意:y必須為正,結果恒為整數。

randomnum(x)

bignum.randomnum(x)

生成0-x的隨機大整數。

呼叫方法

bignum.方法名(引數一,引數二,...)
wechatbignumber.js**如下:

var radix = 16; //進製調整

//去除開頭的0

function ltrimzero(str)

//大數加

function add(a, b) else if (a.indexof('-') < 0 && b.indexof('-') >= 0) else if (a.indexof('-') >= 0 && b.indexof('-') >= 0) else

}//大數無符號加

function addwithoutsign(a, b) else

var temptotal = parseint(total[i], radix);

if (temptotal >= radix)

addflag = 1;

} else

}total = total.reverse().join('');

return total;

} else else

var temptotal = parseint(total[i], radix);

if (temptotal >= radix)

addflag = 1;

} else

}total = total.reverse().join('');

return total;

}}//大數乘

function multiply(a, b) else if (a.indexof('-') < 0 && b.indexof('-') >= 0) else if (a.indexof('-') >= 0 && b.indexof('-') >= 0) else

}//大數無符號乘

function multiplywithoutsign(a, b)

} for (var i = 0; i < len1; i++)

} var n = result.length;

for (var k = 0; k < n; k++)

} output = output.reverse().join('');

output = ltrimzero(output);

if (output == '')

return output

}//大數減

function subtract(a, b) else if (a.indexof('-') < 0 && b.indexof('-') >= 0) else if (a.indexof('-') >= 0 && b.indexof('-') >= 0) else

}//大數無符號減

function subtractwithoutsign(a, b)

while (b.length < a.length)

//從後面位數向前相減

for (var i = a.length - 1; i >= 0; i--) else

} //如果最高位仍然要借位

if (minusone)

result = result.join('');

output = output.join('');

result = ltrimzero(result);

output = ltrimzero(output);

if (output == '')

return output;

}//大數除法(只支援整數除法)

function divide(a, b) else if (a.indexof('-') < 0 && b.indexof('-') >= 0) else if (a.indexof('-') >= 0 && b.indexof('-') >= 0) else

}//無符號除法,返回商

function dividewithoutsign(a, b) else if (compare(a, b) == 0)

var alen = a.length;

var blen = b.length;

var times = alen - blen + 1;

var result = ;

for (var c = 0; c < times; c++)

while (compare(a, tempb) >= 0)

} for (var c = 0; c < result.length; c++)

var output = ltrimzero(result.join(''));

return output;

}//取餘(a可正可負,b只能為正數),最後的結果恒為非負數

function mod(a, b)

// a - (a/b)*b

var output = divide(a, b);

output = multiply(output, b);

output = subtract(a, output);

if (output.indexof('-') != -1)

return output;

}//比較函式(1:a大,±0:相等,-1,:b大)

function compare(a, b) else if (a.indexof('-') < 0 && b.indexof('-') >= 0) else if (a.indexof('-') >= 0 && b.indexof('-') >= 0)

a = a.replace(/^0+/, '');

b = b.replace(/^0+/, '');

var flag;

if (a.length < b.length) else if (a.length > b.length) else

if (flag == 0) else if (aarr[i] < barr[i])

}} return sign * flag;

}//大數隨機數(生成0-n之間的隨機數)

function randomnum(n)

module.exports =

(微信小程式)一 初識微信小程式

需要看的 先是檔案目錄 一 pages 他存放於多個頁面 如 index log頁面。可以把他裡面的每個資料夾看成乙個整體。這個整體存放著 html css 和 資料 1 index資料夾 存放的index頁面的目錄。2 index.js 他可以處理得到 ajax 或自定義定義的資料。把得到的值封裝...

微信小程式

2.單獨設定某一頁面下的頂部欄的背景顏色,在其對應的.json檔案下修改即可 3.this.setdata 注意 onload函式下面執行的是非同步操作,非同步操作裡面this.data.直接賦值,是無效的,必須使用this.setdata this.setdata msg he llo wor l...

微信小程式

你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示 全新的ka...