gpt4 book ai didi

ios - 从sqlite调用时如何避免舍入浮点值

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

我正在使用以下语句从表中获取浮点值:

NSNumber *f = [NSNumber numberWithDouble:(double)sqlite3_column_double(statement, 0)];

数据库中的值为 23.679999999,但我得到的是 23.68。我试过 numberWithFloat 但我得到了相同的结果。谁能告诉我如何在不四舍五入的情况下获得值(value)?

最佳答案

NSNumber-wrapped-double 不是适合存储十进制值的数据类型,因为必须准确保留所有数字。使用 NSDecimalNumber相反:

unsigned char *c = sqlite3_column_text(statement, 0);
NSNumber *f = nil;
if (c) {
NSString *numStr = [NSString stringWithUTF8String:c];
f = [NSDecimalNumber decimalNumberWithString:numStr];
}

只要您使用 native 值,这应该会保留文本表示中可用的所有有效数字。转换为 floatdouble 可能会由于表示差异而导致舍入。

关于ios - 从sqlite调用时如何避免舍入浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28511730/

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