修订大数字的程序转换方式
This commit is contained in:
parent
907dda197b
commit
003aa52781
|
@ -1,31 +1,3 @@
|
||||||
//const _localTranslating = {};
|
//const _localTranslating = {};
|
||||||
//deepMerge(localTranslating, _localTranslating);
|
//deepMerge(localTranslating, _localTranslating);
|
||||||
localisation(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);
|
localisation(localTranslating);
|
||||||
|
|
||||||
//大数字缩短长度
|
//大数字缩短长度
|
||||||
Number.prototype.bigNumberToString = function()
|
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '万', '億', '兆', '京', '垓', '𥝱', '穣', '溝', '澗', '正', '載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'], 4);
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -56,32 +56,4 @@ deepMerge(localTranslating, _localTranslating);
|
||||||
localisation(localTranslating);
|
localisation(localTranslating);
|
||||||
|
|
||||||
//大数字缩短长度
|
//大数字缩短长度
|
||||||
Number.prototype.bigNumberToString = function()
|
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '만', '억', '조', '경', '해', '자', '양', '구', '간', '정', '재', '극', '항하사', '아승기', '나유타', '불가사의', '무량대수'], 4);
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -446,32 +446,4 @@ deepMerge(localTranslating, _localTranslating);
|
||||||
localisation(localTranslating);
|
localisation(localTranslating);
|
||||||
|
|
||||||
//大數字縮短長度
|
//大數字縮短長度
|
||||||
Number.prototype.bigNumberToString = function() {
|
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '萬', '億', '兆', '京', '垓', '秭', '穰', '溝', '澗', '正', '載'], 4);
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -446,32 +446,4 @@ deepMerge(localTranslating, _localTranslating);
|
||||||
localisation(localTranslating);
|
localisation(localTranslating);
|
||||||
|
|
||||||
//大数字缩短长度
|
//大数字缩短长度
|
||||||
Number.prototype.bigNumberToString = function() {
|
Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '万', '亿', '万亿', '亿亿', '万亿亿', '亿亿亿', '万亿亿亿', '亿亿亿亿'], 4);
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -176,8 +176,38 @@ Uint8Array.prototype.toHex = function() {
|
||||||
return [...this].map(n=>n.toString(16).padStart(2,'0')).join('');
|
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
|
//最多保留N位小数,不留0
|
||||||
Number.prototype.keepCounts = function(decimalDigits = 2, plusSign = false)
|
Number.prototype.keepCounts = function(decimalDigits = 2, plusSign = false)
|
||||||
{
|
{
|
||||||
|
@ -1105,8 +1135,7 @@ function countTeamHp(team, leader1id, leader2id, solo, noAwoken = false) {
|
||||||
|
|
||||||
//演示用代码
|
//演示用代码
|
||||||
//console.log("%s 第1次倍率血量:%s,第2次倍率血量:%s",Cards[m.id].otLangName["chs"],hp1,hp2);
|
//console.log("%s 第1次倍率血量:%s,第2次倍率血量:%s",Cards[m.id].otLangName["chs"],hp1,hp2);
|
||||||
|
|
||||||
console.debug(hp, mulHP);
|
|
||||||
return Math.round(mulHP);
|
return Math.round(mulHP);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -6179,7 +6179,6 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
|
||||||
badgeHPScale = 1.10;
|
badgeHPScale = 1.10;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.debug(teamHPArr, tHP, teamHPAwoken, badgeHPScale);
|
|
||||||
tHP = Math.round(tHP * (1 + 0.05 * teamHPAwoken) * badgeHPScale);
|
tHP = Math.round(tHP * (1 + 0.05 * teamHPAwoken) * badgeHPScale);
|
||||||
tHPNoAwoken = Math.round(tHPNoAwoken * badgeHPScale);
|
tHPNoAwoken = Math.round(tHPNoAwoken * badgeHPScale);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue