Objective-C - 如何提高浮点数的精度 [英] Objective-C - How to increase the precision of a float number
本文介绍了Objective-C - 如何提高浮点数的精度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
[txtInput.text floatValue]中获得的值进行比较。即使我在文本框中输入了2504.6,它也会增加5个精度,而且会是2504.600098。而当我比较这两个值时,它们看起来是不相等的。
解决方案
您可以使用 NSDecimalNumber
:
NSDecimalNumber * number = [NSDecimalNumber numberWithFloat:2504.6f];
NSDecimalNumber * input = [NSDecimalNumber decimalNumberWithString:txtInput.text];
NSComparisonResult result = [number compare:input];
if(result == NSOrderedAscending){
// number<输入
} else if(result == NSOrderedDescending){
// number>输入
} else {
//数字==输入
}
Can someone please show me the way to set the precision of a float number to desired length. Say I have a number 2504.6. As you see the precision here is only 1. I want to set it to six.I need this because I compare this value with the value obtained from [txtInput.text floatValue]. And even if I enter 2504.6 to the text box it will add 5 more precisions and will be 2504.600098. And when I compare these two values they appear to be not equal.
解决方案
You can compare the numbers using NSDecimalNumber
:
NSDecimalNumber *number = [NSDecimalNumber numberWithFloat:2504.6f];
NSDecimalNumber *input = [NSDecimalNumber decimalNumberWithString:txtInput.text];
NSComparisonResult result = [number compare:input];
if (result == NSOrderedAscending) {
// number < input
} else if (result == NSOrderedDescending) {
// number > input
} else {
// number == input
}
这篇关于Objective-C - 如何提高浮点数的精度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文