将数字减半会丢失小数部分
Halving a number loses fractional part
我想在 UILabel
上显示数字的一半值。为此,我尝试使用 UITextField
获取数字,将数字从 NSString
格式化为 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]];
示例输出:
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
我需要
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
您正在使用 numberWithInt:
来存储除法的结果;这会丢弃任何小数部分。
你最好使用NSNumber
拳击:
@([myNumber floatValue] / [toDivide floatValue])
编译器知道表达式的类型,并会为您使用正确的 NSNumber
构造函数。
我想在 UILabel
上显示数字的一半值。为此,我尝试使用 UITextField
获取数字,将数字从 NSString
格式化为 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]];
示例输出:
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
我需要
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
您正在使用 numberWithInt:
来存储除法的结果;这会丢弃任何小数部分。
你最好使用NSNumber
拳击:
@([myNumber floatValue] / [toDivide floatValue])
编译器知道表达式的类型,并会为您使用正确的 NSNumber
构造函数。