草庐IT

swift - 字符串转十进制swift

我正在使用userdefaults保存未知长度的十进制值(即51000000000)。Userdefaults不允许保存长十进制数,所以我求助于将值转换为字符串并保存。然后我想重新加载数字但是我一直无法找到将字符串值转换为小数的方法。我该怎么做?编辑:将值设置为userdefaults的代码:letsavedValues=UserDefaults.standardsavedValues.setValue(String(describing:buildingConstants.jitterClickConstantCost),forKey:"jitterClickCost")struct

swift - 如何在 Swift 3 中格式化小数

我正在尝试使用SwiftDecimal结构进行货币操作,但我无法对其进行格式化。如何格式化varmyDecimal:Decimal=9999.99以显示$9,999.99?如果不使用Decimal,我可以按如下方式进行...letmyTotal:NSNumber=9999.99letcurrencyFormatter=NumberFormatter()currencyFormatter.usesGroupingSeparator=truecurrencyFormatter.numberStyle=.currencycurrencyFormatter.locale=NSLocale.cu

swift - 在 Swift 中测试 Decimal 是否为整数

使用Swift3。我在网上找到了很多奇怪的解决方案来检查Decimal是否存在。object是一个整数。一切都感觉比它需要的要复杂得多。这是我的解决方案:extensionDecimal{varisWholeNumber:Bool{returnself.exponent==1}}在我的测试中这有效。我的问题是我是否遗漏了一些明显的东西? 最佳答案 感谢评论!这是我现在使用的。extensionDecimal{varisWholeNumber:Bool{returnself.isZero||(self.isNormal&&self.e

swift - 将 float 截断到小数点后两位的最简单方法?

在Swift中,有没有办法将float截断为2位小数,以便您可以用它执行进一步的计算?我见过的所有线程都处理转换为字符串,我无法弄清楚如何在数学上使用它。我尝试使用一个扩展(在这个论坛上找到),我想我可以在截断后转换回float,但我最终回到了我开始的地方,使用另一个未截断的float。我需要我的返回值以四分之一为单位(即6.50、6.75、5.25等),而我最终得到的结果是6.990022....必须有一个简单的方法来做到这一点,但我碰壁了。提前致谢...问题是:funcroundToNearestQuarter(#power:Float)->String{varerrorToLow

java - float 舍入到2位小数java

我正在尝试将float舍入到2位小数。我有2个浮点值:1.98529.294998它们都需要四舍五入,所以我最终得到以下内容:1.9929.30当我使用下面的方法时:publicstaticFloatprecision(intdecimalPlace,Floatd){BigDecimalbd=newBigDecimal(Float.toString(d));bd=bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);returnbd.floatValue();}结果是:1.9929.29 最佳答案

java - 安卓/Java : Rounding up a number to get no decimal

如何将小数四舍五入为整数。3.50=>44.5=>53.4=>3在Java中如何做到这一点?谢谢! 最佳答案 用标准的舍入函数?Math.round()还有Math.floor()和Math.ceil(),具体取决于您的需要。 关于java-安卓/Java:Roundingupanumbertogetnodecimal,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1139665

java - ASP .net C# Decimal 与 Java Double 之间的舍入不匹配

我正在将.NET代码转换为Java,遇到了精度不匹配的问题。.NET代码:privatedecimalroundToPrecision(decimalnumber,decimalroundPrecision){if(roundPrecision==0)returnnumber;decimalnumberDecimalMultiplier=Math.Round(number/roundPrecision,MidpointRounding.AwayFromZero);returnnumberDecimalMultiplier*roundPrecision;}在上面的代码中调用roundTo

Java 四舍五入到最接近的 .5

这个问题在这里已经有了答案:Bestmethodtorounduptothenearest0.05injava(4个答案)关闭8年前。这在Java中如何实现?我有一个float,我想将它四舍五入到最接近的.5。例如:1.1应该四舍五入到1.01.3应该四舍五入到1.52.5应四舍五入为2.53.223920应四舍五入为3.0编辑:另外,我不只是想要字符串表示,我还想要一个实际的float。

java - 奇怪的 Java 行为 : How come adding doubles with EXACTLY two decimal places result to a double with MORE THAN two decimal places?

如果我有一个double组,每个数组都有两个小数位,通过循环将它们加在一起,然后打印出总数,结果是一个小数点后两位以上的数字。这很奇怪,因为从理论上讲,将两个数字相加,每个数字都有2个小数位且只有2个小数位,永远不会产生一个超过百分之一的非零数字。尝试执行这段代码:double[]d=newdouble[2000];for(inti=0;i在我的电脑上,打印出来的是:total:59.940000000000005,5如果我将总数四舍五入到小数点后两位,那么我得到的数字与我在计算器上手动将9.99相加六次时得到的数字相同。但这是怎么发生的,额外的小数位从何而来?我做错了什么或者(我怀疑

Python小数舍入

意见#18,在20controversialprogrammingopinions让我思考。所以我尝试将pi的值打印到小数点后5位。没关系,因为我认为我绝对可以用Python快速完成。在谷歌上几秒钟我就知道了DecimalmoduleofPython.我完成了。Rest是任何人都可以想出的基本逻辑来总结这个系列以获得Pi的值。>>>fromdecimalimport*>>>getcontext().prec=6>>>Decimal(22)/Decimal(7)我写了上面的快速脚本只是为了检查我会得到什么。但事情是这样的,getcontext().prec=6给了我一个四舍五入的值!>>