这里介绍对浮点数处理,同样的对其他类型如双浮点数double、int等数据类型处理方法的思路也差不多。
1、Mathf运算符
(1)示例 Mathf.Round();
Mathf.Round();浮点数四舍五入取整;
如果舍去位是数字5,不管个数位是偶数还是奇数,将返回偶数。
(2)其他Mathf方法
类似的还有:Mathf.Floor(); Mathf.FloorToInt(); Mathf.RoundToInt();等,详情可查unity脚本手册Mathf函数
float a = Mathf.Round(2.4567f);//结果为2
float b = Mathf.Round(2.5123f);//结果为2,小数位是5,个数位在2,3之间取偶数2
float c = Mathf.Round(3.4521f);//结果为3
float d = Mathf.Round(3.505f);//结果为4,小数位是5,个数位在3,4之间取偶数4
float e = Mathf.Round(3.622f);//结果为4
float num1 = Mathf.Round(floatValue * 10) /10;//保留小数点后一位
float num2 = Mathf.Round(floatValue * 100) /100;//保留小数点后两位
2、Math方法
(1)示例:Math.Round()
Math.Round(Double num);
Math.Round(Double num,Int32 num1);
num是要处理的数,num1是设置保留小数点的位数;
(2)其他Math方法
类似的还有:Math.Round(Double,MidpointRounding);
Math.Round(Decimal num); Math.Round(Decimal num1,Int32 num2);
//四舍五入结果参考上面的Mathf.Round或Math文档
//float与double之间显式转换(强制转换)
float x = (float)Math.Round((double)x, 1);//将 x 后小数点位数指定为1
float x = (float)Math.Round((double)x, 2);//将 x 后小数点位数指定为2
3、String.Format()方法
(1)示例:String.Format("{0:F}",Float);
String.Format("{0:F1}",Value); String.Format("{0:F2}",Value);
字符串的格式化为小数形式,其中F1表示保留小数点后一位,F2表示保留小数点后2位
(2)其他参数
类似的还有:
string.Format("{0:N}", stringValue) ; string.Format("{0:###.##}",stringValue);详情可查看.Net的String.Format 方法文档
string.Format("{0:F}",5.1261); //5.13,默认保留两位小数且截取时自动四舍五入
string.Format("{0:f1}",5.1261); //5.1
string.Format("{0:F2}",5.1261); //5.13
string.Format("{0:F3}",5.1261); //5.126
//字符串与浮点数之间强制转换
float value = float.Parse(string.Format("{0:f1}", getValue));//保留一位小数
float value = float.Parse(string.Format("{0:f2}", getValue));//保留两位小数
4、Value.ToString()方法:
(1)示例:value.ToString(指令);
value.ToString("0.0"); value.ToString("F2") ;
(2)其他参数
同string.Format()方法,可参考官方文档/源码查看其他格式。
float value = float.Parse(getValue.ToString("0.0"));//保留小数点后一位
float value = float.Parse(getValue.ToString("0.00"));//保留小数点后两位