首页 > 代码库 > 对小数的四舍五入算法
对小数的四舍五入算法
Description:
仅仅能对最多6位小数进行四舍五入,注意小数末尾自己主动去0不占位(比如:1.20f被看做:1.2f),当传入的小数为2.0f这种小数时视为整数返回0;
被解决的问题:
在Unity3d圣典中的四舍五入函数Mathf.Round返回浮点数 f 进行四舍五入最接近的整数。假设数字末尾是.5,因此它是在两个整数中间,无论是偶数或是奇数,将返回偶数。
Code:[C#,Unity3d圣典]
float MyRound(float f) { string s = f.ToString(); string [] s0 = s.Split(new char[]{'.'}); if (s0.Length == 1) { print("It is a integer"); return 0; } if (s0.Length != 2) { print("something is wrong"); return 0; } if (s0[1].Length == 1)//1位小数时 { if (int.Parse(s0[1][0].ToString()) >= 5) return Mathf.FloorToInt(f) + 1; else return Mathf.FloorToInt(f); } float power = 10; for (int i = 2; i < s0[1].Length; i++)//s0[1].Length表示小数部分的位数 { power *= 10; } f *= power; f = Mathf.FloorToInt(f); if (int.Parse(s0[1][s0[1].Length-1].ToString()) >= 5) f += 1; f /= power; return f; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。