修订大数字的程序转换方式
This commit is contained in:
parent
907dda197b
commit
003aa52781
|
@ -1,31 +1,3 @@
|
|||
//const _localTranslating = {};
|
||||
//deepMerge(localTranslating, _localTranslating);
|
||||
localisation(localTranslating);
|
||||
|
||||
//大数字缩短长度
|
||||
Number.prototype.bigNumberToString = function() {
|
||||
const negative = this < 0;
|
||||
|
||||
let numTemp = negative ? Math.abs(this) : this.valueOf();
|
||||
if (!numTemp) return "0";
|
||||
if (numTemp == Infinity) return "Infinity";
|
||||
const grouping = 1e3;
|
||||
const unit = ['', 'K', 'M', 'G', 'T', 'P'];
|
||||
const numParts = [];
|
||||
do {
|
||||
numParts.push(numTemp % grouping);
|
||||
numTemp = Math.floor(numTemp / grouping);
|
||||
} while (numTemp > 0 && numParts.length < (unit.length - 1))
|
||||
if (numTemp > 0) {
|
||||
numParts.push(numTemp);
|
||||
}
|
||||
let numPartsStr = numParts.map((num, idx) => {
|
||||
if (num > 0) {
|
||||
return num + unit[idx];
|
||||
} else
|
||||
return "";
|
||||
});
|
||||
|
||||
let outStr = numPartsStr.filter(Boolean).reverse().join(" ");
|
||||
return (negative ? "-" : "") + outStr;
|
||||
}
|
|
@ -56,32 +56,4 @@ deepMerge(localTranslating, _localTranslating);
|
|||
localisation(localTranslating);
|
||||
|
||||
//大数字缩短长度
|
||||
Number.prototype.bigNumberToString = function()
|
||||
{
|
||||
let numTemp = this.valueOf();
|
||||
if (!numTemp) return "0";
|
||||
const grouping = Math.pow(10, 4);
|
||||
const unit = ['','万','億','兆','京','垓'];
|
||||
const numParts = [];
|
||||
do{
|
||||
numParts.push(numTemp % grouping);
|
||||
numTemp = Math.floor(numTemp / grouping);
|
||||
}while(numTemp>0 && numParts.length<(unit.length-1))
|
||||
if (numTemp>0)
|
||||
{
|
||||
numParts.push(numTemp);
|
||||
}
|
||||
let numPartsStr = numParts.map((num,idx)=>{
|
||||
if (num > 0)
|
||||
{
|
||||
return (num < 1e3 ? "と" : "") + num.toLocaleString() + unit[idx];
|
||||
}else
|
||||
return "と";
|
||||
});
|
||||
|
||||
numPartsStr.reverse(); //反向
|
||||
let outStr = numPartsStr.join("");
|
||||
outStr = outStr.replace(/(^と+|と+$)/g,''); //去除开头的零
|
||||
outStr = outStr.replace(/と{2,}/g,'と'); //去除多个连续的零
|
||||
return outStr;
|
||||
}
|
||||
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '万', '億', '兆', '京', '垓', '𥝱', '穣', '溝', '澗', '正', '載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'], 4);
|
||||
|
|
|
@ -56,32 +56,4 @@ deepMerge(localTranslating, _localTranslating);
|
|||
localisation(localTranslating);
|
||||
|
||||
//大数字缩短长度
|
||||
Number.prototype.bigNumberToString = function()
|
||||
{
|
||||
let numTemp = this.valueOf();
|
||||
if (!numTemp) return "0";
|
||||
const grouping = Math.pow(10, 4);
|
||||
const unit = ['','만','억','조'];
|
||||
const numParts = [];
|
||||
do{
|
||||
numParts.push(numTemp % grouping);
|
||||
numTemp = Math.floor(numTemp / grouping);
|
||||
}while(numTemp>0 && numParts.length<(unit.length-1))
|
||||
if (numTemp>0)
|
||||
{
|
||||
numParts.push(numTemp);
|
||||
}
|
||||
let numPartsStr = numParts.map((num,idx)=>{
|
||||
if (num > 0)
|
||||
{
|
||||
return (num < 1e3 ? "と" : "") + num.toLocaleString() + unit[idx];
|
||||
}else
|
||||
return "と";
|
||||
});
|
||||
|
||||
numPartsStr.reverse(); //反向
|
||||
let outStr = numPartsStr.join("");
|
||||
outStr = outStr.replace(/(^と+|と+$)/g,''); //去除开头的零
|
||||
outStr = outStr.replace(/と{2,}/g,'と'); //去除多个连续的零
|
||||
return outStr;
|
||||
}
|
||||
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '만', '억', '조', '경', '해', '자', '양', '구', '간', '정', '재', '극', '항하사', '아승기', '나유타', '불가사의', '무량대수'], 4);
|
||||
|
|
|
@ -446,32 +446,4 @@ deepMerge(localTranslating, _localTranslating);
|
|||
localisation(localTranslating);
|
||||
|
||||
//大數字縮短長度
|
||||
Number.prototype.bigNumberToString = function() {
|
||||
const negative = this < 0;
|
||||
|
||||
let numTemp = negative ? Math.abs(this) : this.valueOf();
|
||||
if (!numTemp) return "0";
|
||||
if (numTemp == Infinity) return "無窮大";
|
||||
const grouping = 1e4;
|
||||
const unit = ['','萬','億','兆','京','垓'];
|
||||
const numParts = [];
|
||||
do {
|
||||
numParts.push(numTemp % grouping);
|
||||
numTemp = Math.floor(numTemp / grouping);
|
||||
} while (numTemp > 0 && numParts.length < (unit.length - 1))
|
||||
if (numTemp > 0) {
|
||||
numParts.push(numTemp);
|
||||
}
|
||||
let numPartsStr = numParts.map((num, idx) => {
|
||||
if (num > 0) {
|
||||
return (num < 1e3 ? "零" : "") + num + unit[idx];
|
||||
} else
|
||||
return "零";
|
||||
});
|
||||
|
||||
numPartsStr.reverse(); //反向
|
||||
let outStr = numPartsStr.join("");
|
||||
outStr = outStr.replace(/(^零+|零+$)/g, ''); //去除开头的零
|
||||
outStr = outStr.replace(/零{2,}/g, '零'); //去除多个连续的零
|
||||
return (negative ? "-" : "") + outStr;
|
||||
}
|
||||
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '萬', '億', '兆', '京', '垓', '秭', '穰', '溝', '澗', '正', '載'], 4);
|
||||
|
|
|
@ -446,32 +446,4 @@ deepMerge(localTranslating, _localTranslating);
|
|||
localisation(localTranslating);
|
||||
|
||||
//大数字缩短长度
|
||||
Number.prototype.bigNumberToString = function() {
|
||||
const negative = this < 0;
|
||||
|
||||
let numTemp = negative ? Math.abs(this) : this.valueOf();
|
||||
if (!numTemp) return "0";
|
||||
if (numTemp == Infinity) return "无穷大";
|
||||
const grouping = 1e4;
|
||||
const unit = ['', '万', '亿', '兆', '京', '垓'];
|
||||
const numParts = [];
|
||||
do {
|
||||
numParts.push(numTemp % grouping);
|
||||
numTemp = Math.floor(numTemp / grouping);
|
||||
} while (numTemp > 0 && numParts.length < (unit.length - 1))
|
||||
if (numTemp > 0) {
|
||||
numParts.push(numTemp);
|
||||
}
|
||||
let numPartsStr = numParts.map((num, idx) => {
|
||||
if (num > 0) {
|
||||
return (num < 1e3 ? "零" : "") + num + unit[idx];
|
||||
} else
|
||||
return "零";
|
||||
});
|
||||
|
||||
numPartsStr.reverse(); //反向
|
||||
let outStr = numPartsStr.join("");
|
||||
outStr = outStr.replace(/(^零+|零+$)/g, ''); //去除开头的零
|
||||
outStr = outStr.replace(/零{2,}/g, '零'); //去除多个连续的零
|
||||
return (negative ? "-" : "") + outStr;
|
||||
}
|
||||
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '万', '亿', '万亿', '亿亿', '万亿亿', '亿亿亿', '万亿亿亿', '亿亿亿亿'], 4);
|
||||
|
|
|
@ -176,8 +176,38 @@ Uint8Array.prototype.toHex = function() {
|
|||
return [...this].map(n=>n.toString(16).padStart(2,'0')).join('');
|
||||
}
|
||||
|
||||
//大数字缩短长度,默认返回本地定义字符串
|
||||
Number.prototype.bigNumberToString = Number.prototype.toLocaleString;
|
||||
//大数字缩短长度
|
||||
function BigNumberToStringLocalise(separators, splitDigits = 3 ) {
|
||||
|
||||
return function(){
|
||||
if (splitDigits < 1) throw new Error('数字分割数量至少是1位');
|
||||
if (Number.isNaN(this)) return 0..bigNumberToString();
|
||||
if (this === Infinity || this === -Infinity) return this.toLocaleString();
|
||||
const grouping = 10 ** splitDigits;
|
||||
const numParts = [];
|
||||
let numTemp = Math.abs(this);
|
||||
do {
|
||||
numParts.push(numTemp % grouping);
|
||||
numTemp = Math.floor(numTemp / grouping);
|
||||
} while (numTemp > 0 && numParts.length < (separators.length - 1))
|
||||
if (numTemp > 0) {
|
||||
numParts.push(numTemp);
|
||||
}
|
||||
let numPartsStr = numParts.map((num, idx) => {
|
||||
if (num > 0) {
|
||||
return num + separators[idx];
|
||||
} else
|
||||
return '';
|
||||
});
|
||||
|
||||
numPartsStr.reverse(); //反向
|
||||
let outStr = numPartsStr.join('');
|
||||
const negative = this < 0;
|
||||
return (negative ? "-" : "") + outStr;
|
||||
}
|
||||
}
|
||||
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', 'K ', 'M ', 'G ', 'T ', 'P ', 'E ', 'Z ', 'Y ', 'R ', 'Q '], 3);
|
||||
|
||||
//最多保留N位小数,不留0
|
||||
Number.prototype.keepCounts = function(decimalDigits = 2, plusSign = false)
|
||||
{
|
||||
|
@ -1106,7 +1136,6 @@ function countTeamHp(team, leader1id, leader2id, solo, noAwoken = false) {
|
|||
//演示用代码
|
||||
//console.log("%s 第1次倍率血量:%s,第2次倍率血量:%s",Cards[m.id].otLangName["chs"],hp1,hp2);
|
||||
|
||||
console.debug(hp, mulHP);
|
||||
return Math.round(mulHP);
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue