|
@@ -1,3 +1,4 @@
|
|
|
+using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using Core.Language;
|
|
@@ -312,12 +313,12 @@ namespace Fort23.Mono
|
|
|
{
|
|
|
if (_skillInfo.effectValue[i] == nextSkillInfo.effectValue[i])
|
|
|
{
|
|
|
- effs[i] = _skillInfo.effectValue[i].ToString("0.0");
|
|
|
+ effs[i] = FormatNumber(_skillInfo.effectValue[i]);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
effs[i] =
|
|
|
- $"{_skillInfo.effectValue[i].ToString("0.0")}<color=green>→({nextSkillInfo.effectValue[i].ToString("0.0")})</color>";
|
|
|
+ $"{FormatNumber(_skillInfo.effectValue[i])}<color=green>→({FormatNumber(nextSkillInfo.effectValue[i])})</color>";
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -441,10 +442,9 @@ namespace Fort23.Mono
|
|
|
string[] effs = new string[_skillInfo.effectValue.Length];
|
|
|
for (var i = 0; i < _skillInfo.effectValue.Length; i++)
|
|
|
{
|
|
|
-
|
|
|
- effs[i] = _skillInfo.effectValue[i].ToString("0.0");
|
|
|
-
|
|
|
+ effs[i] = FormatNumber(_skillInfo.effectValue[i]);
|
|
|
}
|
|
|
+
|
|
|
Text_GongFaDesc.text = UtilTools.GetString(LanguageManager.Instance.Text(_skillInfo.skillConfig.dec),
|
|
|
effs);
|
|
|
}
|
|
@@ -491,5 +491,32 @@ namespace Fort23.Mono
|
|
|
_skillInfo = null;
|
|
|
await base.Close();
|
|
|
}
|
|
|
+
|
|
|
+ public static string FormatNumber(double number)
|
|
|
+ {
|
|
|
+ const double tolerance = 1e-10;
|
|
|
+
|
|
|
+ // 判断是否接近整数
|
|
|
+ if (Math.Abs(number - Math.Round(number)) < tolerance)
|
|
|
+ {
|
|
|
+ return Math.Round(number).ToString();
|
|
|
+ }
|
|
|
+
|
|
|
+ double integerPart = Math.Truncate(number);
|
|
|
+ double fraction = number - integerPart;
|
|
|
+
|
|
|
+ // 检查小数部分是否超过一位
|
|
|
+ double firstDigit = Math.Truncate(fraction * 10);
|
|
|
+ double remainder = fraction * 10 - firstDigit;
|
|
|
+
|
|
|
+ if (Math.Abs(remainder) > tolerance)
|
|
|
+ {
|
|
|
+ return Math.Round(number, 1).ToString("0.0");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return integerPart.ToString();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|