Objective-C - 获取双变量的小数位数 [英] Objective-C - Get number of decimals of a double variable
本文介绍了Objective-C - 获取双变量的小数位数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在努力寻找一种方式,但没有成功。
例如,231.44232000应该返回5。
提前感谢
解决方案
你可以在循环中乘以10直到小数部分由modf()返回)真的接近零。迭代次数将是您之后的答案。如下:
int countDigits(double num){
int rv = 0;
const double insignificantDigit = 8;
double intpart,fracpart;
fracpart = modf(num,& intpart); $(
)((fabs(fracpart)> 0.000000001f)&(rv< insignificantDigit)){
num * = 10;
rv ++;
fracpart = modf(num,& intpart);
}
return rv;
}
Is there a nice way to get the number of decimals of a double variable in Objective-C? I am struggling for a while to find a way but with no success.
For example 231.44232000 should return 5.
Thanks in advance.
解决方案
You could, in a loop, multiply by 10 until the fractional part (returned by modf()) is really close to zero. The number of iterations'll be the answer you're after. Something like:
int countDigits(double num) {
int rv = 0;
const double insignificantDigit = 8;
double intpart, fracpart;
fracpart = modf(num, &intpart);
while ((fabs(fracpart) > 0.000000001f) && (rv < insignificantDigit)) {
num *= 10;
rv++;
fracpart = modf(num, &intpart);
}
return rv;
}
这篇关于Objective-C - 获取双变量的小数位数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文