簡體   English   中英

目標C,修剪浮點數

[英]Objective C, Trim a float

我有float3500,435232123 我只想知道是否存在(在目標C中)一個讓我只保留最后4位數字的函數是2123。

您可以使用NSNumberFormatter

NSNumberFormatter *format = [[NSNumberFormatter alloc]init];
[format setNumberStyle:NSNumberFormatterDecimalStyle];
[format setRoundingMode:NSNumberFormatterRoundHalfUp];
[format setMaximumFractionDigits:4];
[format setMinimumFractionDigits:4];

string = [NSString stringWithFormat:@"%@",[format stringFromNumber:[NSNumber numberWithFloat:65.50055]] ;

或者簡單地

NSString *string = [NSString stringWithFormat:@"%.04f", floatValue];

如果只需要最后四位數字,請將浮點數轉換為字符串

NSString *string = [NSString stringWithFormat:@"%f", floatValue];

並獲取最后四個字符

NSString *lastFour = [string substringFromIndex: [string length] - 4];

如果要獲取小數部分,可以執行x-floor(x)。 例如:

float x = 3500,435232123;
NSString *string = [NSString stringWithFormat:@"%.04f", x - floor(x)];

要獲得4個十進制數字,請執行Fawad Masud所說的。

據我所知,沒有這樣的功能。 但是,這是一種精確實現您想要的方法。

首先,您必須將其四舍五入至四位數:

NSString *exampleString = [NSString stringWithFormat:@"%.04f", valueToRound];

然后,在exampleString獲取逗號的位置:

NSRange commaRange = [valueString rangeOfString:@","];

最后,使用該finalString中的值創建NSRange 子字符串從commaRange.location+commaRange.length開始,因為多數民眾贊成在commaRange.location+commaRange.length逗號之后的索引。

NSString *finalString = [valueString substringWithRange:NSMakeRange(commaRange.location+commaRange.length,valueString.length-commaRange.location-commaRange.length)];

希望對您有幫助。

我認為這不是預定義的功能。

我想到的解決方案是:

float floatNum = 3500.435232123;

float轉換為字符串並修剪/細分字符串,例如:

NSString *stringFloat = [NSString stringWithFormat:@"%f", floatNum];
NSString *newString = [stringFloat substringWithRange:NSMakeRange(stringFloat.length - 4, stringFloat.length)];

NSLog(@"%@", newString);

另一個是這樣的:

NSString *stringFloat = [NSString stringWithFormat:@"%f", floatNum];

//separates the floating number to 
arr[0] = whole number
arr[1] = decimals

NSArray *arr=[str componentsSeparatedByString:@"."];

由於您只想使用小數,我認為arr[1]是您所需要的。

NSString *stringDecimals = (NSString *)arr[1];

if ( stringDecimals.length > 4) //check the length of the decimals then cut if exceeds 4 character..
{
    stringDecimals = [stringDecimals substringWithRange:NSMakeRange(stringDecimals.length - 4, stringDecimals.length)];
}

NSLog(@"stringDecimals: %@", stringDecimals);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM