Ber*_*lue 5 objective-c ios firebase google-cloud-firestore
如何通过 Objective-C SDK 在 Firestore 中存储数字的精确值?
例如,如果我手动创建值为“15.9”的“abv”字段,它会显示确切的值。
但是,如果我从 Objective-C API 将 Firestore 中的值更新为NSNumber
,@(15.9)
我会在 Firestore 文档中获得该近似值。
NSDictionary *data = @{@"abv": @(15.9)};
[documentReference updateData:data completion:^(NSError * _Nullable error) {
}];
Run Code Online (Sandbox Code Playgroud)
这是另一个例子。61.99
我尝试存储Objective-C 应用程序中的值。61.99
我可以从网络控制台手动编辑金额。我不明白为什么我可以从 Web 控制台手动输入精确的十进制值,但不能从 Objective-C API 手动输入。
这通过使用解决了这个问题NSDecimalNumber
。我现在可以精确地存储两位小数精度的数字。
NSNumber *number = (NSNumber *)value;
NSString *text = [NSString stringWithFormat:@"%.2f", number.doubleValue];
NSDecimalNumber *decimalNumber = [[NSDecimalNumber alloc] initWithString:text];
return decimalNumber;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
436 次 |
最近记录: |