草庐IT

iphone - 我如何知道何时在核心数据中使用 Integer16/32/64 或 float/int/double/decimal?

使用NSInteger(或NSNumber)和float/int有什么好处/坏处?小数到底是什么??谢谢! 最佳答案 NSInteger在iPhone上使用时只是int的类型定义,但如果您为64位机器构建代码,在OSX上会将32位int形式更改为64位int。NSNumber是一个可以容纳任何类型数字的对象,包括float、整数、double、长整数等。NSDecimal是一个结构体,它将告诉您有关NSNumber的浮点值的一些细节。NSDecimalNumber是NSNumber的子类,可以保存更精确的浮点值:参见@dreanla

ios - 如何在不丢失精度的情况下从 String 解析 Decimal?

我在我的应用程序中处理金额,因此精度显然非常重要,Decimal/NSDecimal数字应该是快速处理金钱的方式。我想在保持精度的同时在Decimal和String之间进行转换。(解析API响应,存储到DB...)这是我目前的解决方案:privateletdotLocaleDictionary=[NSLocale.Key.decimalSeparator:"."]funcapiStringToDecimal(_string:String)->Decimal?{letnumber=NSDecimalNumber(string:string,locale:dotLocaleDictiona

swift - 计算 Swift 中 Float(或 Decimal)中的小数位数

例如,我想计算float(或NSDecimalNumber)中的小数位数(忽略尾随零):1.45000=>25.98=>21.00=>00.857=>35=>0我怎样才能做到这一点? 最佳答案 使用Decimal执行此操作非常简单,前提是您正确创建了Decimal。小数存储为significand*10^exponent。significand被规范化为可能的最小整数。所以对于1230,有效数是123,指数是1。对于1.23,有效数也是123,指数是-2。这导致我们:extensionDecimal{varsignificantFr

json - NSJSONSerialization with small decimal numbers

我试图在NSJSONSerialization生成的一些JSON中包含Double值0.81。代码如下:letjsonInput=["value":0.81]letdata=tryNSJSONSerialization.dataWithJSONObject(jsonInput,options:NSJSONWritingOptions.PrettyPrinted)letjson=NSString(data:data,encoding:NSUTF8StringEncoding)!print(json)输出是:{"value":0.8100000000000001}但我想看到的是:{"val

java - 轻量级 Java Decimal 类

我正在考虑为BigDecimal编写两个有限精度的替代方案,即DecimalInt和DecimalLong。这些将能够处理int和long的实际范围内的数字,具有任意小数位数,可以以可变和不可变形式创建。我的计划是让DecimalInt支持+/-999,999,999到+/-0.999999999和DecimalLong相同,但最多18位。这将通过将DecimalInt的十进制数字计数值保持在0-9和DecimalLong的十进制数字计数值0-18以及存储为缩放int或long的实际值来完成。通常用于小数位数,例如货币和股票价格,通常为2-4位小数。基本要求是(a)精益足迹(2个类,加

Java - Decimal Format.parse 以返回具有指定小数位数的 double 值

我希望能够将字符串转换为Double,给定格式字符串中的小数位数。所以“###,##0.000”应该给我Double到小数点后3位。编辑-为发生的事情添加了更多信息用户在UI中输入值-该值被输入到一个字符串中。规则是此值限制为小数点后3位。底层代码将值存储在数据库中,然后用于计算。因此,尾随小数位会导致计算结果略微超出预期。我有以下代码:try{//outputcurrentlocalewearerunningunder(thishappenstobe"nl_BE")System.out.println("CurrentLocaleis"+Locale.getDefault().toS

c# - Java的BigDecimal是不是最接近C#的Decimal对应的数据类型?

根据图表here,Java中与C#的Decimal等效的数据类型是BigDecimal。真的是这样吗?“大”序言怎么了?Java中似乎没有“SmallDecimal”或“LittleDecimal”(更不用说“MediumSizedDecimal”)了。不过,我必须说,这张图表是我在这个主题上找到的最清晰的东西;其他链接here和here和here对我来说,就像Storm过后的密西西比河一样清澈。 最佳答案 Isthisreallyso?它们相似但不完全相同。更具体地说:Java版本可以表示C#版本可以表示的每个值,但反之则不然。W

python - 如何在德语语言环境中将字符串转换为 Python Decimal(使用逗号而不是点)

我正在尝试将字符串转换为Python十进制数。这行得通fromdecimalimport*mystr='123.45'print(Decimal(mystr))但是当我想使用千位分隔符和语言环境时,却没有。转换为float效果很好。fromlocaleimport*setlocale(LC_NUMERIC,'German_Germany.1252')fromdecimalimport*mystr='1.234,56'print(atof(mystr))print(Decimal(mystr))返回float和一个错误1234.56InvalidOperation:[]是否有一种正确的方

python - 类型错误:+ 不支持的操作数类型: 'decimal' 和 'float'

我正在使用Python2.7和MySQLdb。我在这段代码上收到此错误:Value=5x.execute("SELECTnumberfromTestingwhereid='%s';"%Value)data=x.fetchall()print(data)data=data[0][0]data=data+0.5x.execute("""UPDATETestingSETnumber=%sWHEREid=%s""",(data,Value))conn.commit()错误发生在行:data=data+0.5。TypeError:+不支持的操作数类型:'decimal'和'float'。数字是D

python - 从 Python Decimal 中提取数值

当我简单地使用pythonDecimal对象时:fromdecimalimport*dec=Decimal('3.432')printdec它将打印3.432,就像我想要的那样,但是如果我尝试将相同的值dec放入json对象中,我在json中得到的是Decimal("3.432")。我怎样才能从十进制中得到数值? 最佳答案 >>>str(decimal.Decimal('3.1'))'3.1'开箱即用的JSON大量使用了一些原始类型,例如字符串。最好的办法是在从某些Python对象创建JSON文档时将Decimals转换为字符串。将