我想知道是否有一种reliable
方法可以将Float
x
haxe转换为String
具有指定小数位数(例如3)的a。
一个直接的方法是首先转换x
为字符串表示,然后修剪一切小数点之后的给定数目的字符之后.
,如图所示在这里。但是,如果某个平台显示数字0.0111
为,会发生什么1.11e-2
?
我似乎也找不到“ printf
haxe”,这将允许我以正确的方式格式化数字。我想知道在haxe中执行此操作的最佳实践是什么。
我想在结果中获取字符串,因为在某些系统中,浮点数为您提供了例如0.19999
.. from的信息2/10.0
。仅截断小数点后的某些字符将是不准确的。
public static function floatToStringPrecision(n:Float, prec:Int){
n = Math.round(n * Math.pow(10, prec));
var str = ''+n;
var len = str.length;
if(len <= prec){
while(len < prec){
str = '0'+str;
len++;
}
return '0.'+str;
}
else{
return str.substr(0, str.length-prec) + '.'+str.substr(str.length-prec);
}
}
在某些平台上,舍入可能在大数(> MAX_INT)上失败,因此,在这种情况下,您需要自己的舍入函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句