Objective-C - 获取双变量的小数位数 [英] Objective-C - Get number of decimals of a double variable

查看:155
本文介绍了Objective-C - 获取双变量的小数位数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一个很好的方法来获取Objective-C中的double变量的小数位数?
我正在努力寻找一种方式,但没有成功。



例如,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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆