Objective c 检查浮点数的长度

Objective c 检查浮点数的长度,objective-c,ios,xcode,Objective C,Ios,Xcode,我试图检查浮点变量的长度(以数字为单位),但我不知道使用正确的语法。我查过了,找不到答案 我的代码是一个简单的if语句: if (currentNumber.digits < 3) { //If the number has less that three digits, I don't know what to put here to get it working //code } if(currentNumber.digits

我试图检查浮点变量的长度(以数字为单位),但我不知道使用正确的语法。我查过了,找不到答案

我的代码是一个简单的if语句:

if (currentNumber.digits < 3) {  //If the number has less that three digits, I don't know what to put here to get it working

    //code
}
if(currentNumber.digits<3){//如果这个数字少于三位数,我不知道该在这里放什么来让它工作
//代码
}

您可以使用您的值创建一个NSString并检查其长度:

NSString *stringNumber = [NSString stringWithFormat:@"%g", currentValue];
int length = stringNumber.length

你可以从长度减去1来考虑小数点。

NSString
doc的引用,以便您可以检查这些方法的作用,以防您不理解它们

编辑:如果您希望数字在小数点之前,可以在我发布的内容之后执行此操作:

[stringNumber substringToIndex:[stringNumber rangeOfString:@"."].location].length

然后在程序的条件中使用此值。

您可以使用您的值生成一个NSString并检查其长度:

NSString *stringNumber = [NSString stringWithFormat:@"%g", currentValue];
int length = stringNumber.length
int digits = [[NSString stringWithFormat:@"%g", variable] length]

你可以从长度减去1来考虑小数点。

NSString
doc的引用,以便您可以检查这些方法的作用,以防您不理解它们

编辑:如果您希望数字在小数点之前,可以在我发布的内容之后执行此操作:

[stringNumber substringToIndex:[stringNumber rangeOfString:@"."].location].length
然后在程序的条件中使用此值。

\include
int digits = [[NSString stringWithFormat:@"%g", variable] length]
//... 整数位数=(整数)单元(log10(数字));
负数的额外逻辑留给读者作为练习。

\include
//...
整数位数=(整数)单元(log10(数字));

负数的额外逻辑留给读者作为练习。

因为似乎没有正确的答案:

int digits = (int) ceil(log10(currentNumber));

因为似乎没有一个正确的答案:

int digits = (int) ceil(log10(currentNumber));

你说的长度是什么意思?你是说小数点前的数字吗?只是后面的那些?或者全部?抱歉,仅限小数点之前的数字。您可以对小数日志进行四舍五入(ceil)以获得位数。为什么要这样做?您是否正在尝试进行一些格式化,例如添加1000个分隔符?(aka 1000000?)如果是这样,您应该使用。不,我希望用户输入受数字限制,而不是值。长度是什么意思?你是说小数点前的数字吗?只是后面的那些?或者全部?抱歉,仅限小数点之前的数字。您可以对小数日志进行四舍五入(ceil)以获得位数。为什么要这样做?您是否正在尝试进行一些格式化,例如添加1000个分隔符?(aka 1000000?)如果是,您应该使用。否,我希望用户输入受数字限制,而不是值。否。请参阅顶部的评论或我的答案。您必须向上取整,而不是向下取整,才能得到位数。它不应该是
(int)ceil(log10f(float))
?否。请参阅顶部的注释或我的答案。你必须向上取整,而不是向下取整才能得到位数。它不应该是
(int)ceil(log10f(float))