Objective c 如何从objective c中的文本框中按原样获取浮点值

Objective c 如何从objective c中的文本框中按原样获取浮点值,objective-c,Objective C,有谁能帮我从文本框中获取浮点值吗 例如:我已输入40.7 rateField=[[rateField text] floatValue]; 我得到的rateField值为40.700008,但我只想要40.7 请帮帮我 提前谢谢 谢谢大家 我尝试了所有的可能性,但我无法得到我想要的。我不希望打印要转换为字符串的值。我希望使用该值进行计算。如果我在从数字转换为浮点时再次使用数字格式化程序,则会出现相同的问题。因此,我只需要浮点值,但它应该是我在文本框中给出的任何值,不应填充任何值。这是我的要求。

有谁能帮我从文本框中获取浮点值吗

例如:我已输入
40.7

rateField=[[rateField text] floatValue];
我得到的
rateField
值为
40.700008
,但我只想要
40.7

请帮帮我

提前谢谢

谢谢大家

我尝试了所有的可能性,但我无法得到我想要的。我不希望打印要转换为字符串的值。我希望使用该值进行计算。如果我在从数字转换为浮点时再次使用数字格式化程序,则会出现相同的问题。因此,我只需要浮点值,但它应该是我在文本框中给出的任何值,不应填充任何值。这是我的要求。请帮助我

谢谢并问候巴鲁


谢谢大家

我尝试了所有的可能性,但我无法得到我想要的。我不希望打印要转换为字符串的值。我希望使用该值进行计算。如果我在从数字转换为浮点时再次使用数字格式化程序,则会出现相同的问题。因此,我只需要浮点值,但它应该是我在文本框中给出的任何值,不应填充任何值。这是我的要求。请帮助我

谢谢和问候
Balu

试着改用双倍密码。通常可以解决这个问题。与存储精度有关


double dbl=[rateField.text doubleValue]

试着改用
double
。通常可以解决这个问题。与存储精度有关


double dbl=[rateField.text doubleValue]

这没问题。如果您使用双倍
也不能保证您将获得
40.7


如果要输出
40.7
,可以使用
%.1f
NSNumberFormatter
这是可以的。如果您使用双倍
也不能保证您将获得
40.7


如果你想输出
40.7
,你可以使用
%.1f
NSNumberFormatter

当使用浮点数时,这些事情可能会发生,因为这些数字是以二进制格式存储在计算机内存中的

它类似于1/3=0.33333的方式。。。以十进制数字表示


处理这一问题的最佳方法是在显示值的文本框中使用数字格式化程序。

使用浮点数时,这些事情可能会发生,因为数字是以二进制格式存储在计算机内存中的

它类似于1/3=0.33333的方式。。。以十进制数字表示


处理此问题的最佳方法是在显示值的文本框中使用数字格式化程序。

您已经解析了浮点值

浮点数的精度有限。尽管这取决于 系统中,四舍五入导致的浮动相对误差约为1.1e-8 非初等算术运算可能会产生更大的错误,当然 当然,在执行多个操作时,必须考虑错误预测 它们是复合的

另外,有理数可以精确表示为 以10为基数的浮点数,如0.1或0.7,没有 精确表示为基数2中的浮点数,即 在内部使用,无论尾数的大小。因此,他们 如果没有 精度损失小。这可能会导致令人困惑的结果:例如 例如,楼板((0.1+0.7)*10)通常返回7,而不是 预期为8,因为内部表示类似于 7.9999999999999118


所以,如果您使用这些数字作为输出,您应该使用一些舍入机制,即使对于双值也是如此。

您已经解析了浮点值

浮点数的精度有限。尽管这取决于 系统中,四舍五入导致的浮动相对误差约为1.1e-8 非初等算术运算可能会产生更大的错误,当然 当然,在执行多个操作时,必须考虑错误预测 它们是复合的

另外,有理数可以精确表示为 以10为基数的浮点数,如0.1或0.7,没有 精确表示为基数2中的浮点数,即 在内部使用,无论尾数的大小。因此,他们 如果没有 精度损失小。这可能会导致令人困惑的结果:例如 例如,楼板((0.1+0.7)*10)通常返回7,而不是 预期为8,因为内部表示类似于 7.9999999999999118


因此,如果您使用这些数字作为输出,您应该使用一些舍入机制,即使对于双值也是如此。

谢谢您的回答,但我没有得到双alsoThank u的回答,但我没有得到双alsoThank的回答。打印没问题。但是我需要精确的值来执行字符串操作,因为我们不能执行操作。所以我只需要文本框中的浮点值,这些值应该是给定的格式,不应该用任何值填充。我们可以使用NumberFormat,但若我们将数字转换成浮点,同样的问题会重复。所以,请给我解决方案,除了截断,它可能不会给出准确的值。谢谢你的回答。打印没问题。但是我需要精确的值来执行字符串操作,因为我们不能执行操作。所以我只需要文本框中的浮点值,这些值应该是给定的格式,不应该用任何值填充。我们可以使用NumberFormat,但若我们将数字转换成浮点,同样的问题会重复。所以,请给我一个解决方案,除了截断,它可能不会给出准确的值。