Objective-C - 如何提高浮点数的精度 [英] Objective-C - How to increase the precision of a float number

查看:141
本文介绍了Objective-C - 如何提高浮点数的精度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以告诉我如何设置一个浮点数的精度到所需的长度。说我有一个号码2504.6。正如你所看到的,这里的精度只有1.我想把它设置为6.我需要这个,因为我把这个值与从
[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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆