Unitybug5_浮点数显示问题

匿名 (未验证) 提交于 2019-12-03 00:22:01
今天游戏有bug,数据没有问题,但是显示的时候各种不对。
测试代码:test.cs
public class test : MonoBehaviour {     public Text text1;     public Text text2;      void Start() {         float number = 98647135;         text1.text = number + "";          float number2 = 0.08751f;         text2.text = (number2 * 100) + "%";     } } 
unity4.6.9 运行结果:
1)浮点数数据大的时候,自动显示科学技术法?
float只有7位有效数字,当数据超过7位的时候必须使用double或者decimal类型。就算用 float.ToString("F0") 不显示科学技术法了,数据精确度已经丢失了,因为只有前7位是有效的。
解决方法:改成double。

2)浮点数乘以整数最后显示9999,精确度显示问题?
解决方法:System.Math.Round设置精确度

解决代码:test.cs

public class test : MonoBehaviour {      public Text text1;     public Text text2;     public Text text3;     public Text text4;     public Text text5;      void Start() {         float number = 98647137;         text1.text = number + "";         text2.text = System.Convert.ToDouble(number) + "";  //强制转换也是丢失精确度。          double d_number = 98647137;         text3.text = d_number + "";          float number2 = 0.08751f;         text4.text = (number2 * 100) + "%";         text5.text = System.Math.Round(number2 * 100, 4) + "%";     } }
Unity运行效果图:



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!