jjzjj

NSDecimalNumber

全部标签

ios - 四舍五入问题将 NSDecimalNumber 插入到 Sqlite 中

NSDeciamlNumber3.33插入数据库时​​变为0.32999999999999996sql是正确的,但是执行sql时数据变成了0.32999999999999996。我正在使用FMDB,我尝试了列类型REAL、DECIMAL,它们有同样的问题。如果有办法将比例设置为DECIMAL列。我试过DECIMAL(8,2),但没有用。 最佳答案 据我所知,SQLite不提供实际的十进制类型,所有类似float的数字都被转换为double。http://www.sqlite.org/datatype3.html对于小数(10,5):

ios - 在保持准确性的同时将 double 转换为 NSDecimalNumber

我需要转换在double中执行的计算结果,但我不能使用decimalNumberByMultiplyingBy或任何其他NSDecimalNumber函数。我尝试通过以下方式获得准确的结果:doublecalc1=23.5*45.6*52.7;//->calc1=56473.32000000000698491931NSDecimalNumber*calcDN=(NSDecimalNumber*)[NSDecimalNumbernumberWithDouble:calc1];NSLog(@"calcDN=%@",[calcDNstringValue]);->calcDN=56473.32

ios - 什么时候使用 NSDecimal、NSDecimalNumber 而不是 double 更好?

对于简单的用途,例如跟踪65.1kg这样的体重值,使用NSDecimal/NSDecimalNumber比使用double有什么好处吗?我的理解是double(甚至浮点)在这种情况下提供了足够的精度。如果我错了,请纠正我。 最佳答案 首先,阅读JoshCaswell的链接。与金钱打交道时,这一点尤为重要。在您的情况下,这可能重要也可能不重要,具体取决于您的目标。如果您输入65.1并且您想要精确地返回65.1,那么您肯定需要使用一种能够正确舍入为十进制值的格式,例如NSDecimalNumber。如果在输入65.1时,您想要“一个在6

ios - iOS 中 NSDecimalNumber 的小数点分隔符错误

我尝试通过以下方式输出带有正确小数点分隔符的小数点描述:NSString*strValue=@"9.94300";NSDecimalNumber*decimalNumber=[NSDecimalNumberdecimalNumberWithString:strValue];NSLocale*locale=[NSLocalecurrentLocale];NSLog(@"%@",[localelocaleIdentifier]);NSLog(@"%@",[decimalNumberdescriptionWithLocale:locale]);输出是:de_DE9.943小数点分隔符应该是'

ios - 获取小数点后两位的 NSDecimalNumber

我想在除以100之后创建NSDecimalNumber。我正在使用以下代码:NSDecimalNumber*amountToSendNumber=[numberdecimalNumberByDividingBy:[NSDecimalNumberdecimalNumberWithString:@"100"]];如果我将2536作为25.36输入,它会给出正确的值。但是如果我提供输入2500那么输出就是25。我希望在没有任何舍入机制的情况下输出为25.00。有什么帮助吗? 最佳答案 在显示NSDecimalNumber时需要使用NSNu

arrays - 如何找到数组类型 NSDecimalNumber 的总和

我正在用Swift构建一个预算应用程序。NSDecimalNumber在一个Action之后首先添加到一个数组中(如下)。然后NSDecimalNumber被转换为TableView的CurrencyFormat,并附加到一个单独的字符串数组。如何找到第一个NSDecimalNumbers数组的总和来创建可用金额标签?varadding:[NSDecimalNumber]=[5,6,5.55,6.55,1]我试过将数字转换为NSDecimal(addingAmount),然后将其附加到上面的数组(添加):letaddingAmount=NSDecimalNumber(string:te

swift - NSDecimalNumber(x).intValue 返回 -2、0、15 和 199,具体取决于 x 中的小数位数 (x = 199.999...5)

我们在我们的业务逻辑中发现了一个有趣的案例,它完全打破了我们的逻辑,我们不明白为什么NSDecimalNumber和Decimal的行为方式是这样的。我的案例playground如下:importFoundationletpQuantity=Decimal(string:"0.2857142857142857")!letpPrice=Decimal(string:"7.00000000000000035")!letcalced=NSDecimalNumber(decimal:pQuantity*pPrice*Decimal(integerLiteral:100))//200letdec

swift - NSDecimalNumber 在 Swift 中的货币精度用法

这个问题在这里已经有了答案:Howtostore1.66inNSDecimalNumber(1个回答)关闭5年前。我读了很多书,说NSDecimalNumber是使用货币时使用的最佳格式。但是,我仍然遇到float问题。例如。leta:NSDecimalNumber=0.07//0.07000000000000003letb:NSDecimalNumber=7.dividing(by:100)//0.06999999999999999我知道我可以使用Decimal并且b就是我所期望的:letb:Decimal=7/100//0.07我在我的应用程序中使用核心数据。所以我坚持使用NSDe

objective-c - 将 NSDecimalNumber 转换为字符串

如何将NSDecimalNumber值转换为字符串?//ReturntypeisNSDecimalNumbervarprice=prod.minimumPrice//10//needaStringcell.priceLB.text=NSString(format:"%f",prod.minimumPrice)asString 最佳答案 您可以尝试其中的一些选项。它们都应该返回10。还要检查为什么需要创建NSString格式化数字并将其转换为String。"\(price)"String(describing:price)NSStri

ios - RLMObject 属性 NSDecimalNumber

我知道RLMObjects不能存储NSDecimalNumber。为了解决这个问题,我尝试了以下方法,但失败了:privatedynamicvar_amount:String=""publicvaramount:NSDecimalNumber{get{returnNSDecimalNumber(string:_amount)}set{_amount=newValue.stringValue}}我收到一条失败消息,指出RLMObjects无法存储NSDecimalNumbers。我的印象是非动态属性不会存储在Realm中 最佳答案 R