将数字减半会丢失一小部分

agr*_*gr0 0 floating-point objective-c division

我想在a上显示数字的减半值UILabel.为此,我尝试使用a来获取数字UITextField,将数字从a格式化NSString为a NSNumber然后除以2.

之后我想在它上面显示它,UILabel但它在逗号后面没有显示任何内容(十进制标记).不知道怎么解决这个问题?我只需要两个数字后面的逗号.

这是我目前的UIButton代码:

// first get the input
NSString *inputValue = self.numberInput.text;
NSLog(@"given number: %@", inputValue);

// divide the input by 2 & get the output
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [formatter numberFromString:inputValue];
NSNumber *toDivide = [NSNumber numberWithFloat:2];

NSNumber *dividedNumber = [NSNumber numberWithInt:[myNumber floatValue] / [toDivide floatValue]];
NSLog(@"divided value: %@", dividedNumber);

// print it out on the firstBill Label
self.firstBill.text = [NSString stringWithFormat:@"%.2f",[dividedNumber floatValue]];
Run Code Online (Sandbox Code Playgroud)

示例输出:

2015-08-18 20:03:02.021 Week one[1364:37640] given number: 123.54
2015-08-18 20:03:02.022 Week one[1364:37640] divided value: 61
Run Code Online (Sandbox Code Playgroud)

我需要类似的东西

2015-08-18 20:03:02.021 Week one[1364:37640] given number: 123.54
2015-08-18 20:03:02.022 Week one[1364:37640] divided value: 61.77
Run Code Online (Sandbox Code Playgroud)

Jos*_*ell 5

numberWithInt:用来存储分裂的结果; 这会丢弃任何小数部分.

你最好使用NSNumber拳击:

@([myNumber floatValue] / [toDivide floatValue])
Run Code Online (Sandbox Code Playgroud)

编译器知道表达式的类型,并将NSNumber为您使用正确的构造函数.