|
@@ -45,6 +45,8 @@ public class Amount
|
|
|
public static double 千兆 = 1000000000000000;
|
|
|
public static double 京 = 10000000000000000;
|
|
|
public static double 千京 = 10000000000000000000;
|
|
|
+ public static BigInteger 垓 = new BigInteger("100000000000000000000");
|
|
|
+ public static BigInteger 千垓 = new BigInteger("100000000000000000000000");
|
|
|
}
|
|
|
|
|
|
public class Auxiliary : Regist
|
|
@@ -120,14 +122,23 @@ public class Auxiliary : Regist
|
|
|
//gameObject.AddComponent<ManaAnim>().RegistImmed();
|
|
|
}
|
|
|
|
|
|
- public double test;
|
|
|
+ public Text Text;
|
|
|
+ private double testDouble;
|
|
|
private void Update()
|
|
|
{
|
|
|
+ //ManaLan.CurrentLan = Lan.ChineseSimplified;
|
|
|
+
|
|
|
+ //testDouble = Amount.千京 + Amount.京*10;
|
|
|
+
|
|
|
+ //Text.text = ShrinkNumberStr(testDouble,2);
|
|
|
+
|
|
|
#region 调试
|
|
|
|
|
|
if (Input.GetKeyDown(KeyCode.Escape))
|
|
|
{
|
|
|
- Debug.Log(ShrinkNumberStr(test));
|
|
|
+ ManaCenter.Coin = 15400;
|
|
|
+
|
|
|
+ ManaCenter.Pay("",15600,Current.Coin, ()=> {Debug.Log("Done");});
|
|
|
}
|
|
|
|
|
|
if (Input.GetKeyDown(KeyCode.N))
|
|
@@ -616,81 +627,123 @@ public class Auxiliary : Regist
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- return str.Substring(0, index + accuray + 1);
|
|
|
+ for (int i = index + 1; i < index + accuray + 1; i++)
|
|
|
+ {
|
|
|
+ if (str[i] != '0')
|
|
|
+ {
|
|
|
+ return str.Substring(0, index + accuray + 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return str.Substring(0, index);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
- public static long ShrinkNumber(double value, int accuracy = 1)
|
|
|
+ public static double ShrinkNumber(double value, int accuracy = 1)
|
|
|
{
|
|
|
- long longValue = (long) value;
|
|
|
-
|
|
|
if (ManaLan.CurrentLan == Lan.English)
|
|
|
{
|
|
|
- if (longValue < Amount.千)
|
|
|
+ if (value < Amount.千)
|
|
|
{
|
|
|
- return longValue;
|
|
|
+ return value;
|
|
|
}
|
|
|
- else if (longValue < Amount.百万)
|
|
|
+ else if (value < Amount.百万)
|
|
|
{
|
|
|
- long temp = (long) Amount.百;
|
|
|
+ string str = (value / Amount.千).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return (longValue/ temp) * temp;
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.千;
|
|
|
}
|
|
|
- else if (longValue < Amount.十亿)
|
|
|
+ else if (value < Amount.十亿)
|
|
|
{
|
|
|
- long temp = (long)Amount.十万;
|
|
|
+ string str = (value / Amount.百万).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return (longValue / temp) * temp;
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.百万;
|
|
|
}
|
|
|
- else if (longValue < Amount.兆)
|
|
|
+ else if (value < Amount.兆)
|
|
|
{
|
|
|
- long temp = (long)Amount.亿;
|
|
|
+ string str = (value / Amount.十亿).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return (longValue / temp) * temp;
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.十亿;
|
|
|
}
|
|
|
- else if (longValue < Amount.千兆)
|
|
|
+ else if (value < Amount.千兆)
|
|
|
{
|
|
|
- long temp = (long)Amount.千亿;
|
|
|
+ string str = (value / Amount.兆).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return (longValue / temp) * temp;
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.兆;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- long temp = (long)Amount.千亿;
|
|
|
+ string str = (value / Amount.兆).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return (longValue / temp) * temp;
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.兆;
|
|
|
}
|
|
|
}
|
|
|
else if (ManaLan.CurrentLan == Lan.ChineseSimplified || ManaLan.CurrentLan == Lan.ChineseTraditional)
|
|
|
{
|
|
|
- if (longValue < Amount.万)
|
|
|
+ if (value < Amount.万)
|
|
|
+ {
|
|
|
+ return value;
|
|
|
+ }
|
|
|
+ else if (value < Amount.千万)
|
|
|
{
|
|
|
- return longValue;
|
|
|
+ string str = (value / Amount.万).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.;
|
|
|
+ }
|
|
|
+ else if (value < Amount.亿)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.千万).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.;
|
|
|
}
|
|
|
- else if (longValue < Amount.亿)
|
|
|
+ else if (value < Amount.千亿)
|
|
|
{
|
|
|
- long temp = (long)Amount.千;
|
|
|
+ string str = (value / Amount.亿).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return (longValue / temp) * temp;
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.;
|
|
|
}
|
|
|
- else if (longValue < Amount.兆)
|
|
|
+ else if (value < Amount.兆)
|
|
|
{
|
|
|
- long temp = (long)Amount.千万;
|
|
|
+ string str = (value / Amount.千亿).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return (longValue / temp) * temp;
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.;
|
|
|
}
|
|
|
- else if (longValue < Amount.京)
|
|
|
+ else if (value < Amount.千兆)
|
|
|
{
|
|
|
- long temp = (long)Amount.千亿;
|
|
|
+ string str = (value / Amount.兆).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return (longValue / temp) * temp;
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.;
|
|
|
+ }
|
|
|
+ else if (value < Amount.京)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.千兆).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.;
|
|
|
+ }
|
|
|
+ else if (value < Amount.千京)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.京).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.;
|
|
|
+ }
|
|
|
+ else if (new BigInteger(value.ToString("0")) < Amount.垓)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.千京).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return double.Parse(OmitNumberStr(accuracy, str)) * Amount.;
|
|
|
+ }
|
|
|
+ else if (new BigInteger(value.ToString("0")) < Amount.千垓)
|
|
|
+ {
|
|
|
+ string str = (new BigInteger(value.ToString("0")) / Amount.垓).ToString();
|
|
|
+
|
|
|
+ return OmitNumberStr(0, str) + "垓";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- long temp = (long)Amount.千亿;
|
|
|
+ string str = (new BigInteger(value.ToString("0")) / Amount.千垓).ToString();
|
|
|
|
|
|
- return (longValue / temp) * temp;
|
|
|
+ return OmitNumberStr(0, str) + "千垓";
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -701,123 +754,175 @@ public class Auxiliary : Regist
|
|
|
|
|
|
public static string ShrinkNumberStr(double value, int accuracy = 1)
|
|
|
{
|
|
|
- long longValue = (long) value;
|
|
|
-
|
|
|
if (ManaLan.CurrentLan == Lan.English)
|
|
|
{
|
|
|
- if (longValue < Amount.千)
|
|
|
+ if (value < Amount.千)
|
|
|
{
|
|
|
- return longValue.ToString();
|
|
|
+ return value.ToString("0");
|
|
|
}
|
|
|
- else if (longValue < Amount.百万)
|
|
|
+ else if (value < Amount.百万)
|
|
|
{
|
|
|
- string str = (longValue / Amount.千).ToString();
|
|
|
+ string str = (value / Amount.千).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "K";
|
|
|
}
|
|
|
- else if (longValue < Amount.十亿)
|
|
|
+ else if (value < Amount.十亿)
|
|
|
{
|
|
|
- string str = (longValue / Amount.百万).ToString();
|
|
|
+ string str = (value / Amount.百万).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "M";
|
|
|
}
|
|
|
- else if (longValue < Amount.兆)
|
|
|
+ else if (value < Amount.兆)
|
|
|
{
|
|
|
- string str = (longValue / Amount.十亿).ToString();
|
|
|
+ string str = (value / Amount.十亿).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "B";
|
|
|
}
|
|
|
- else if (longValue < Amount.千兆)
|
|
|
+ else if (value < Amount.千兆)
|
|
|
{
|
|
|
- string str = (longValue / Amount.兆).ToString();
|
|
|
+ string str = (value / Amount.兆).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "T";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- string str = (longValue / Amount.兆).ToString();
|
|
|
+ string str = (value / Amount.兆).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "T";
|
|
|
}
|
|
|
}
|
|
|
else if (ManaLan.CurrentLan == Lan.ChineseSimplified)
|
|
|
{
|
|
|
- if (longValue < Amount.千)
|
|
|
+ if (value < Amount.万)
|
|
|
{
|
|
|
- return longValue.ToString();
|
|
|
+ return value.ToString("0");
|
|
|
}
|
|
|
- else if (longValue < Amount.万)
|
|
|
+ else if (value < Amount.千万)
|
|
|
{
|
|
|
- string str = (longValue / Amount.千).ToString();
|
|
|
+ string str = (value / Amount.万).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return OmitNumberStr(accuracy, str) + "千";
|
|
|
+ return OmitNumberStr(accuracy, str) + "万";
|
|
|
}
|
|
|
- else if (longValue < Amount.百万)
|
|
|
+ else if (value < Amount.亿)
|
|
|
{
|
|
|
- string str = (longValue / Amount.十万).ToString();
|
|
|
+ string str = (value/Amount.千万).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return OmitNumberStr(accuracy, str) + "十万";
|
|
|
+ return OmitNumberStr(accuracy, str) + "千万";
|
|
|
}
|
|
|
- else if (longValue < Amount.千万)
|
|
|
+ else if (value < Amount.千亿)
|
|
|
{
|
|
|
- string str = (longValue / Amount.百万).ToString();
|
|
|
+ string str = (value / Amount.亿).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return OmitNumberStr(accuracy, str) + "百万";
|
|
|
+ return OmitNumberStr(accuracy, str) + "亿";
|
|
|
}
|
|
|
- else if (longValue < Amount.亿)
|
|
|
+ else if (value < Amount.兆)
|
|
|
{
|
|
|
- string str = (longValue/Amount.千万).ToString();
|
|
|
+ string str = (value / Amount.千亿).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return OmitNumberStr(accuracy, str) + "千万";
|
|
|
+ return OmitNumberStr(accuracy, str) + "千亿";
|
|
|
}
|
|
|
- else if (longValue < Amount.兆)
|
|
|
+ else if (value < Amount.千兆)
|
|
|
{
|
|
|
- string str = (longValue / Amount.千亿).ToString();
|
|
|
+ string str = (value / Amount.兆).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
- return OmitNumberStr(accuracy, str) + "千亿";
|
|
|
+ return OmitNumberStr(accuracy, str) + "兆";
|
|
|
}
|
|
|
- else if (longValue < Amount.京)
|
|
|
+ else if (value < Amount.京)
|
|
|
{
|
|
|
- string str = (longValue / Amount.千兆).ToString();
|
|
|
+ string str = (value / Amount.千兆).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "千兆";
|
|
|
}
|
|
|
- else
|
|
|
+ else if (value < Amount.千京)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.京).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return OmitNumberStr(accuracy, str) + "京";
|
|
|
+ }
|
|
|
+ else if (new BigInteger(value.ToString("0")) < Amount.垓)
|
|
|
{
|
|
|
- string str = (longValue / Amount.千京).ToString();
|
|
|
+ string str = (value / Amount.千京).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "千京";
|
|
|
}
|
|
|
+ else if (new BigInteger(value.ToString("0")) < Amount.千垓)
|
|
|
+ {
|
|
|
+ string str = (new BigInteger(value.ToString("0")) / Amount.垓).ToString();
|
|
|
+
|
|
|
+ return OmitNumberStr(0, str) + "垓";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string str = (new BigInteger(value.ToString("0")) / Amount.千垓).ToString();
|
|
|
+
|
|
|
+ return OmitNumberStr(0, str) + "千垓";
|
|
|
+ }
|
|
|
}
|
|
|
else if (ManaLan.CurrentLan == Lan.ChineseTraditional)
|
|
|
{
|
|
|
- if (longValue < Amount.万)
|
|
|
+ if (value < Amount.万)
|
|
|
{
|
|
|
- return longValue.ToString();
|
|
|
+ return value.ToString("0");
|
|
|
}
|
|
|
- else if (longValue < Amount.亿)
|
|
|
+ else if (value < Amount.千万)
|
|
|
{
|
|
|
- string str = (longValue / Amount.万).ToString();
|
|
|
+ string str = (value / Amount.万).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "萬";
|
|
|
}
|
|
|
- else if (longValue < Amount.兆)
|
|
|
+ else if (value < Amount.亿)
|
|
|
{
|
|
|
- string str = (longValue / Amount.亿).ToString();
|
|
|
+ string str = (value / Amount.千万).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return OmitNumberStr(accuracy, str) + "千萬";
|
|
|
+ }
|
|
|
+ else if (value < Amount.千亿)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.亿).ToString("F" + (accuracy + 1));
|
|
|
|
|
|
return OmitNumberStr(accuracy, str) + "億";
|
|
|
}
|
|
|
- else if (longValue < Amount.京)
|
|
|
+ else if (value < Amount.兆)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.千亿).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return OmitNumberStr(accuracy, str) + "千億";
|
|
|
+ }
|
|
|
+ else if (value < Amount.千兆)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.兆).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return OmitNumberStr(accuracy, str) + "兆";
|
|
|
+ }
|
|
|
+ else if (value < Amount.京)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.千兆).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return OmitNumberStr(accuracy, str) + "千兆";
|
|
|
+ }
|
|
|
+ else if (value < Amount.千京)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.京).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return OmitNumberStr(accuracy, str) + "京";
|
|
|
+ }
|
|
|
+ else if (new BigInteger(value.ToString("0")) < Amount.垓)
|
|
|
+ {
|
|
|
+ string str = (value / Amount.千京).ToString("F" + (accuracy + 1));
|
|
|
+
|
|
|
+ return OmitNumberStr(accuracy, str) + "千京";
|
|
|
+ }
|
|
|
+ else if (new BigInteger(value.ToString("0")) < Amount.千垓)
|
|
|
{
|
|
|
- string str = (longValue / Amount.兆).ToString();
|
|
|
+ string str = (new BigInteger(value.ToString("0")) / Amount.垓).ToString();
|
|
|
|
|
|
- return OmitNumberStr(accuracy, str) + "萬億";
|
|
|
+ return OmitNumberStr(0, str) + "垓";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- string str = (longValue / Amount.兆).ToString();
|
|
|
+ string str = (new BigInteger(value.ToString("0")) / Amount.千垓).ToString();
|
|
|
|
|
|
- return OmitNumberStr(accuracy, str) + "萬億";
|
|
|
+ return OmitNumberStr(0, str) + "千垓";
|
|
|
}
|
|
|
}
|
|
|
else
|