例如:
[@(-2.50001) unsignedIntegerValue] == -3
[@(-2.49999) unsignedIntegerValue] == -2
但是:
[@(-2.50001) integerValue] == -2
[@(-2.49999) integerValue] == -2
好,这是代码。我正在编写我的代码的单元测试:
- (void)testUnsignedIntegerValue {
XCTAssertEqual([@(-2.50001) unsignedIntegerValue], (NSUInteger)-3);
XCTAssertEqual([@(-2.49999) unsignedIntegerValue], (NSUInteger)-2);
}
答案 0 :(得分:4)
由于数字类型具有不同的存储功能,因此尝试 用一种类型的值初始化并访问另一种类型的值 类型可能会产生错误的结果
此外,在更下方的Table 4 – NSNumber from Floating Point Value Conversions中,具体显示了查询从负浮点值创建的unsignedIntegerValue
的{{1}}会产生“ 无效,错误的结果”。
您要尝试执行的操作本质上是不确定的,并且无法使其可靠。