文本以指数形式显示大数字

Text shows big numbers in exponential form

我有一个带滑块的简单消息框。滑块控制显示的数字。数字会变得相当大。当他们这样做时,Text 组件以标准形式显示它(见下文)。

如何阻止它这样做?

编辑:

假设最大数量可以达到 100 千万亿 (100000000000000000)

文本的设置方式:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Events;

public class SliderMessageBox : MonoBehaviour
{
  public Slider SliderObject;
  public Text SliderFeedback;

  public void Function(Long MaximumValue)
  {
    SliderObject.minValue = 1000;
    SliderObject.maxValue = MaximumValue;
    SliderObject.onValueChanged.AddListener(SetFeedback);
    SetFeedback(SliderObject.value);
  }

  void SetFeedback(float value)
  {
    SliderFeedback.text = value.ToString();
  }
}

public 参数是通过检查器设置的。这不是全部class,只是关于反馈的部分(稍微修改一下就明白了。)

问题来自 code.You 的 value.ToString() 行可以提供 value.ToString(); 函数参数使用哪种格式,该格式将用于将 float 转换为 string.由于这是一个很大的float,你失去了精度。

获得像40797490000000000

这样的完整价值
SliderFeedback.text = value.ToString("#");

获取 42,225,940,000,000,000 格式的值

SliderFeedback.text = value.ToString("#,#");

您也可以使用 N (value.ToString("N1");)。包括小数位。 N2 表示小数点后 2 位,N3 表示小数点后 3 位...这也可以用 #.## 代替。有关标准数字格式字符串的更多信息,请访问 here