OStack程序员社区-中国程序员成长平台

标题: ios - 小数点不能用逗号进行数学运算。需要点 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 04:21
标题: ios - 小数点不能用逗号进行数学运算。需要点

我有一个带有三个 View Controller 的应用程序。首先是具有三个 UITextField 的 UIViewController,用户在其中放置了一些数字。这些数字作为字符串属性存储到我的 CoreData 实体中。

其次是 UITableView,我将 CoreData 中存储的数据显示为新单元格。 第三是详细的 UIViewController,我向用户展示了他之前插入的所有数字。 问题是当我在 textField 小数点上设置时,用户有数字和逗号,但我的函数需要带点的数字来进行 double 计算。 使用逗号我无法将数学函数设为 [.....] * [...] = .... 因为它不起作用。

知道我该如何解决吗? 我可以简单地将逗号更改为点吗?

我有这个代码:

 NSNumberFormatter*nf = [[NSNumberFormatter alloc]init];
[nf setNumberStyle:NSNumberFormatterDecimalStyle];

double result = [myString doubleValue] * [myOtherString doubleValue];



Best Answer-推荐答案


您希望十进制小键盘根据用户的区域设置有逗号或句点(点)。这样用户就可以按照他们习惯的方式输入值。为了让您使用 vales 进行数学运算,您需要使用 NSNumberFormatter 将输入的字符串转换为 double 值。一旦你这样做了,你的数学公式就会起作用。切勿使用 doubleValuefloatValueNSString 转换为 doublefloat 如果该字符串由用户输入。始终使用 NSNumberFormatter 来正确处理用户的语言环境。

根据添加到问题的代码进行更新。

您不使用数字格式化程序。你正在做我说不要做的事。将您的代码更改为:

double firstValue = [[nf numberFromString:myString] doubleValue];
double secondValue = [[nf numberFromString:myOtherString] doubleValue];
double result = firstValue * secondValue;

关于ios - 小数点不能用逗号进行数学运算。需要点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068960/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4