我有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