瀏覽代碼

修改bug

lzx 12 小時之前
父節點
當前提交
5f5cfcf42b
共有 1 個文件被更改,包括 32 次插入5 次删除
  1. 32 5
      Assets/Scripts/GameUI/UI/GongFaUpgradePanel/GongFaUpgradePanel.cs

+ 32 - 5
Assets/Scripts/GameUI/UI/GongFaUpgradePanel/GongFaUpgradePanel.cs

@@ -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();
+            }
+        }
     }
 }