gpt4 book ai didi

ios - NSDecimalNumber 计算错误

转载 作者:行者123 更新时间:2023-11-29 10:44:27 25 4
gpt4 key购买 nike

111...1111 - 111...1110 应等于 1

NSLog(@"%@", [[NSDecimalNumber decimalNumberWithString:@"1111111111111111111111111111111111111111"] decimalNumberBySubtracting:[NSDecimalNumber decimalNumberWithString:@"1111111111111111111111111111111111111110"]]);

我正在使用 decimalNumberBySubtracting: 来计算它,但我得到了 0。除了 stringValue,我没有将它更改为任何形式的值,所以我认为它不应该有任何精度损失。

结果:

enter image description here

这是一个错误吗?我在谷歌上试过,它也回答 0。 enter image description here

最佳答案

你的代码一定有问题。

NSDecimalNumber *x = [NSDecimalNumber decimalNumberWithString:@"1111111111111111"];
NSDecimalNumber *y = [NSDecimalNumber decimalNumberWithString:@"1111111111111110"];
assert([[x decimalNumberBySubtracting:y] isEqualToNumber:[NSDecimalNumber decimalNumberWithString:@"1"]]);

编辑

您的问题和原始计算器图像显示两个 16 位数字。

但是,您的调试器输出显示您实际使用的数字要大得多。计算数字中有效数字的个数,然后阅读 NSDecimalNumber 文档的第一段,然后回答您自己的问题。为了便于使用,我将在此处包含文档中的摘要段落。

NSDecimalNumber, an immutable subclass of NSNumber, provides an object-oriented wrapper for doing base-10 arithmetic. An instance can represent any number that can be expressed as mantissa x 10^exponent where mantissa is a decimal integer up to 38 digits long, and exponent is an integer from –128 through 127.

关于ios - NSDecimalNumber 计算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22883579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com