我有float
像3500,435232123
。所有我想知道,如果存在(在Objective C),讓我只保留最後4位數字在我的情況的功能是2123客觀C,修剪浮動
客觀C,修剪浮動
回答
您可以使用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];
是的,但數字仍然顯示,我只想在點後4位數,沒有左側。謝謝!!! –
@DanPaschevici我已經更新了我的答案。 –
非常感謝!!!! –
它你想獲得小數部分,你可以做x - floor(x)。例如:
float x = 3500,435232123;
NSString *string = [NSString stringWithFormat:@"%.04f", x - floor(x)];
並獲得4位小數位做Fawad馬蘇德說。
不,據我所知,沒有這樣的功能。但是,這是一種實現你想要的東西的方法。
首先,你必須點後,它舍入到四位:
NSString *exampleString = [NSString stringWithFormat:@"%.04f", valueToRound];
然後,你的位置在exampleString
裏面的逗號:
NSRange commaRange = [valueString rangeOfString:@","];
最後創建finalString
與價值觀從那NSRange
。子字符串起始於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);
- 1. 修剪浮動
- 2. 客觀c - 浮動返回錯誤值
- 3. 修剪的浮動操作按鈕CSS
- 4. 修剪在C#
- 5. 在客觀C++
- 6. 客觀C宏
- 7. 客觀C-定義在C或客觀的C
- 8. 客觀C複製captcha圖像到剪貼板
- 9. 修改函數讀取浮動C#
- 10. shared_ptr的/客觀-C
- 11. '||'在客觀的C?
- 12. 客觀c,代表
- 13. 客觀C變數
- 14. 客觀c自動發佈問題
- 15. 客觀c動態對象創建
- 16. 修剪尾部零而無需投射浮動
- 17. c和客觀c變量
- 18. 修剪C++決策樹
- 19. 在C++中修剪double值
- 20. 修剪字符數組C++
- 21. C#RegularExpressionValidator修剪和計數
- 22. C++命名修剪:QBE_NXZ QAE_NXZ
- 23. Javascript修剪原樣在C#
- 24. Javascript修剪圖像客戶端
- 25. 如何修剪此動畫
- 26. 滑動佈局修剪bug
- 27. rpart是否自動修剪?
- 28. MYSQL禁用自動修剪
- 29. Alpha beta修剪根移動
- 30. 通在客觀C基準
是你的不是3500.435232123?那麼4位小數應該是4352而不是2123,如果它可以使用[NSString stringWithFormat:@「%。4f」,3500.435232123]; [ –
爲什麼你想修剪浮動? – Droppy
首先,不要使用浮動。 Float的精度只有7位數,所以如果你的電話號碼是3500,435232123,那就不好了。使用雙。 「最後四位數」= 2123導致結果不準確。如果號碼是3500,4352321230,該怎麼辦?這是相同的數字,但最後四位數字是2130.無論如何,如果以無限精度顯示_any_浮點數,則它是一個整數或以5結尾,因爲浮點數是_binary_。所以結果是_never_ 2123. – gnasher729