- iOS NSDecimalNumber 基本使用
赫子丰
NSDecimalNumber主要应用于需要高精度处理的数据,基本使用方法如下:1.加减乘除计算-(NSDecimalNumber*)decimalNumberByAdding:(NSDecimalNumber*)decimalNumber;-(NSDecimalNumber*)decimalNumberBySubtracting:(NSDecimalNumber*)decimalNumber;-
- Double数字精度处理
iLeooooo
今天在用Double的数字的时候,发现精度有问题,不管怎么处理,后面都会有一长串的0.0000000002,0.0000000003,0.0000000001,0.99999999997等问题解决问题:使用NSDecimalNumber用于精度准确的计算在处理金额计算时,往往会涉及到小数,由于Double类型不准确,无法做到产品的要求。为了保证金额计算的准确性,建议使用NSDecimalNumbe
- IOS 处理后台返回字符串精度丢失的问题
本客
我们做网络获取的时候,一般后台会返回给我们json格式的文件,我们获取到的信息也是字符串,但是返回的字符串分明是1.459999999,而在谷歌浏览器测试的时候返回的却是1.46,这个问题百思不得其解,经过查阅资料发现这个精度丢失的问题,在后台返回float或者double或者NSString类型时,利用NSDecimalNumber处理精度丢失问题,但是NSNumber的description方
- iOS开发中的NSDecimalNumber使用
梁森的简书
好处不会出现像字符串类型转float类型出现的错误。如:NSLog(@"%f",[@"123456700"floatValue]);打印结果:123456704.000000使用NSString*str=@"1";NSLog(@"===%f",str.floatValue);NSDecimalNumber*num1=[NSDecimalNumberdecimalNumberWithString:s
- swift:金额(单位为分)计算
龙之天下
///金额(单位为分)计算--self被除数///-Parameters:///-scale:精确度///-roundingMode:///-Returns:funcdividingMoney(scale:Int16=1,roundingMode:NSDecimalNumber.RoundingMode=.plain)->String{returnself.dividing(by:"100",sc
- 价格计算的精度
ShawMoolan
如果用float或者double计算精度不准确的话,可用NSDecimalNumber进行加减乘除NSDecimalNumber*n1=[NSDecimalNumberdecimalNumberWithString:[NSStringstringWithFormat:@"%f",d1]];NSDecimalNumber*n2=[NSDecimalNumberdecimalNumberWithStr
- iOS开发之NSDecimalNumber货币计算
旭日猎鹰
iOS开发
在iOS开发中,遇到和货币价格计算相关的,对计算精度要求比较高。使用float类型运算,经常出现误差。为了解决这种问题我们使用NSDecimalNumber。一、基本算法1、字符串初始化为NSDecimalNumberNSDecimalNumber*number1=[NSDecimalNumberdecimalNumberWithString:@"123"];NSDecimalNumber*num
- NSDecimalNumberHandler 调试记录
dongfang
项目中遇见精度问题,代码给的down向下取整,但是当负数时候就会出错,变成向上取整代码如下:funcnumber(string:String){//方式1:不进行四舍五入letnumber1=NSDecimalNumber(string:string)letnumber2=NSDecimalNumber(string:"0")letnum=number1.adding(number2)print(
- NSDecimalNumber基本使用
蚂蚁牙齿不黑
作用NSDecimalNumber继承自NSNumber,用于对浮点型数据的精度计算加减乘除以及乘方NSDecimalNumber*price1=[NSDecimalNumberdecimalNumberWithString:@"15.99"];NSDecimalNumber*price2=[NSDecimalNumberdecimalNumberWithString:@"29.99"];NSDe
- swift NSDecimalNumber链式加减乘除算法
超级卡布达
用swift写的链式运算法则附代码备注:如果有不足或者错误的地方还望各位读者批评指正,可以评论留言,笔者收到后第一时间回复。QQ/微信:976971956/ljh976971956。号:江湖呼呼:[]www.jianghu.com感谢各位观众老爷的阅读,如果觉得笔者写的还凑合,可以关注或收藏一下,不定期分享一些好玩的实用的demo给大家。文/江湖呼呼(作者)著作权归作者所有,转载请联系作者获得授权
- NSDecimalNumber精度计算
被吹落的风
场景:我们在做金钱计算的时候会遇到一个问题,就是精确的问题,许多项目尤其是电商类项目都会涉及到,就是当我们对价格用float或者double进行处理的时候,有的时候总是会出现一些误差,还有就是假如我们精确小数点后面两位,就有可能出现xxx.00或者xx.x0的问题,这些都是我们在处理价格的时候可能会遇到的坑!!而且涉及到钱的问题,不管什么app都要做到特别的精确,不能出现任何的误差!NSDecim
- iOS 数字单位转换 万/百万/千万/亿
d0u
万以下的自动返回,我添加了万/百万/千万/亿的单位,可以根据自己的需求进行单位修改,参考来源+(NSString*)getDealNumwithstring:(NSString*)string{NSDecimalNumber*numberA=[NSDecimalNumberdecimalNumberWithString:string];NSDecimalNumber*numberB;NSStrin
- iOS-精度数据处理NSDecimalNumber
XTK_iOS
作用用于对浮点型数据的精度计算doublenum1=6.67;doublenum2=15.666666;NSLog(@"%f",num1*num2);//结果:104.496662,不精确NSDecimalNumber*price=[NSDecimalNumberdecimalNumberWithString:@"6.67"];NSDecimalNumber*totalPrice=[NSDecim
- iOS float、double(有小数点)计算失真的问题
小白e7899
开发中,碰到数值计算是很正常的,如果是整型计算都没问题,但是如果碰到浮点数(小数)不管是floatdouble型,只要参与计算就会出现失真的情况,iOS开发中可以使用NSDecimalNumber来计算和比较,今天整理了一下方法,用链式编程的思想封装了一个NSString类目。目前只包含简单的加、减、乘、除、大于、小于、大于、等于,大于等于、小于等于的方法。备注:本人的项目数据模型用的YYMode
- ios使用后台接受float类型出现精度不准
guoguojianshu
方案1:NSDecimalNumber做处理开发中处理处理价格金额问题,后台经常返回float、double类型,打印或转成NSString都会有精度丢失问题,因此使用系统自带的NSDecimalNumber做处理,能解决这问题:处理精度有关的数据先把数据转成double类型此处我是以string方式接收的,直接添加NSString的分类,修正方法贴出来如下:+(NSString)reviseSt
- iOS 浮点类型精度丢失问题
小僧有礼了
苹果提供的解决方案:NSDecimalNumber针对浮点类型计算精度问题提供的计算类,基于十进制的科学计数法来计算,同时可以指定舍入模式,一般用于货币计算。处理json转字符串,浮点精度缺失问题[NSDecimalNumberdecimalNumberWithString:numberString]
- iOS 价格浮点型计算类NSDecimalNumber详解
不会写代码的尬先生
电商类应用涉及金额计算,力求精确度建议使用NSDecimalNumber计算价格。一、浮点类数据解析使用Model解析JSON时建议使用NSDecimalNumber类或double类型接收浮点小数类型。如用NSString或float接收数据转换时会出现把2解析成1.999999999这种样式的风险。我的处理是使用NSDecimalNumber解析浮点类型数据并给NSDecimalNumber增
- Object精度缺失问题
MrXR
项目中会遇见的问题在项目中,一些小数计算往往不太注意,但是当遇到的一些精度计算问题,令人抓狂,Apple建议使用NSDecimalNumber做处理,我对此作了一点点封装XXDecimalNumberHandle在涉及到和钱有关的计算时或者浮点数在总数中所占百分比计算,这些都是对精度要求严格的,而使用floatValuedoubleValue的转化运算时,往往会出现误差我们知道在计算机的存储中,任
- NSDecimalNumber
咚咚嗒大人
继承NSNumber,用来处理精准计算。之前的一个电商项目中,就经常会遇到这样一个问题。使用自带解析[NSJSONSerializationJSONObjectWithData:jsonDataoptions:NSJSONReadingMutableLeaveserror:nil];出现以下问题:解析前:"71.40"解析后:"71.40000000000001"当时使用了第三方才处理了这个问题。
- NSString转Double, 精度丢失处理
BabyNeedCare
后台返回一个“17.9”金额的值,通常方法,“17.9”.doubleValue后,结果变成了17.899999,乘以100后,竟然得出1789,实际应该是1790。iOS提供的保留精度的方法是使用NSDecimalNumber。这可以完美解决问题。如上例:NSString*numb=@"17.9";//模拟后台返回的数据NSDecimalNumber*restMoney=[NSDecimalNu
- NSDecimalNumber 使用
Smile_J
NSDecimalNumber是使用货币时最好的格式。官方文档NSDecimalNumber是NSNumber的一个子类,比NSNumber的功能更为强大,四舍五入,取整,输入后自动去掉数值前面无用的0等等.由于NSDecimalNumber精度较高,所以会比基本数据类型费时,所以需要权衡考虑,苹果官方建议在货币以及要求精度很高的场景下使用.通常情况下我们会使用NSDecimalNumberHan
- iOS NSDecimalNumber的一些简单理解和使用
晓风f残月
遇到一个问题服务器返回货币数据妈的用string》floatvalue不准确NSDecimalNumberHandler*roundUp=[NSDecimalNumberHandlerdecimalNumberHandlerWithRoundingMode:NSRoundBankersscale:2raiseOnExactness:NOraiseOnOverflow:NOraiseOnUnderf
- iOS 浮点转字符串,去除小数点后多余的0
歌白尼
开发中常遇到浮点转字符串,然而不是所有情况都需要保留固定的小数位数,有时候为了视觉统一,我们需要把小数点后无效的0去除。常规的处理方法是转为NSNumber,但是依然会有精度丢失的情况,最优的方案是使用精准度更高的NSDecimalNumber来处理,可以有效避免精度丢失,又能保证去除多余的0:NSString*testNum=@"0.07000";//常规转NSNumber方式NSString*
- iOS精确计算
就用帅气点的昵称吧
直接上代码NSString*showNum=[NSStringstringWithFormat:@"%@",hitCountNumber];//直接显示字符串即可方法源码复制#pragmamark精确计算+(nsdecimalnumber*)computationwithfirstnum:(nsstring*)firstnum//第一个计算参数如:@"10000.0"twonum:(nsstrin
- iOS 10进制字符串转16进制(任一大小)
孤胆走天涯
-(NSString*)getHexByDecimal:(NSDecimalNumber*)decimal{//10进制转换16进制(支持无穷大数)NSString*hex=@"";NSString*letter;NSDecimalNumber*lastNumber=decimal;for(inti=0;i0?hex:@"0";}
- iOS科学计算,舍入规则
summerNight
科学计数法项目在遇到金额问题的时候,无论用float还是double结果都是会有误差的。这时候就需要用科学计数法。在iOS中就是用NSDecimalNumber这个类基本使用/*typedefNS_ENUM(NSUInteger,NSRoundingMode){NSRoundPlain,//四舍五入NSRoundDown,//只舍不入NSRoundUp,//只入不舍NSRoundBankers//
- iOS 数字精准计算之NSDecimalNumber
大大盆子
NSDecimalNumber简介顾名思义这是一个十进制数字类,继承自NSNumber,苹果针对浮点类型计算精度问题提供出来的计算类,基于十进制的科学计数法来计算,同时可以指定舍入模式,一般用于货币计算。初始化方法/**创建并返回一个十进制对象@paramdcm十进制的结构体*/-(instancetype)initWithDecimal:(NSDecimal)dcm;/**@parammanti
- iOS 精度数据处理之 NSDecimalNumber
环游世界ToT
1.NSDecimalNumberiOS精度数据处理之NSDecimalNumberiOS开发NSDecimalNumber的基本使用,加、减、乘、除、指数、比较NSDecimalNumber简单实用
- iOS中的高精度数值计算
d0e12b8de9ee
前言在iOS开发中,和价格计算相关的,需要注意计算精度的问题,使用float、double来计算价格数值会出现精度损失,使用官方的NSDecimalNumber是更好的选择。本篇文章探讨下浮点数的精度损失,以及在iOS中高精度计算的处理1.浮点数的表示现在所有通用计算机都采用IEEE754来表示浮点数,IEEE二进制浮点数算术标准是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点
- 保留小数位数和精确数字(NSDecimalNumber/NSDecimalNumberHandler)
DCSnail-蜗牛
大家都会在开发中遇到,一个float或者double类型的小数上,有时候会有一个精度的丢失,造成数据不准确.尤其是在涉及到一些支付的项目,都要求比较精确,所以来说一说NSDecimalNumber,顺便说一下保留小数的方法,NSDecimalNumberHandler和Xcode自带宏定义中的round().NSDecimalNumber//部分创建方法[[NSDecimalNumberalloc
- 关于旗正规则引擎下载页面需要弹窗保存到本地目录的问题
何必如此
jsp超链接文件下载窗口
生成下载页面是需要选择“录入提交页面”,生成之后默认的下载页面<a>标签超链接为:<a href="<%=root_stimage%>stimage/image.jsp?filename=<%=strfile234%>&attachname=<%=java.net.URLEncoder.encode(file234filesourc
- 【Spark九十八】Standalone Cluster Mode下的资源调度源代码分析
bit1129
cluster
在分析源代码之前,首先对Standalone Cluster Mode的资源调度有一个基本的认识:
首先,运行一个Application需要Driver进程和一组Executor进程。在Standalone Cluster Mode下,Driver和Executor都是在Master的监护下给Worker发消息创建(Driver进程和Executor进程都需要分配内存和CPU,这就需要Maste
- linux上独立安装部署spark
daizj
linux安装spark1.4部署
下面讲一下linux上安装spark,以 Standalone Mode 安装
1)首先安装JDK
下载JDK:jdk-7u79-linux-x64.tar.gz ,版本是1.7以上都行,解压 tar -zxvf jdk-7u79-linux-x64.tar.gz
然后配置 ~/.bashrc&nb
- Java 字节码之解析一
周凡杨
java字节码javap
一: Java 字节代码的组织形式
类文件 {
OxCAFEBABE ,小版本号,大版本号,常量池大小,常量池数组,访问控制标记,当前类信息,父类信息,实现的接口个数,实现的接口信息数组,域个数,域信息数组,方法个数,方法信息数组,属性个数,属性信息数组
}
&nbs
- java各种小工具代码
g21121
java
1.数组转换成List
import java.util.Arrays;
Arrays.asList(Object[] obj); 2.判断一个String型是否有值
import org.springframework.util.StringUtils;
if (StringUtils.hasText(str)) 3.判断一个List是否有值
import org.spring
- 加快FineReport报表设计的几个心得体会
老A不折腾
finereport
一、从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度。否则每次设计时模板均要从远程读取数据,速度相当慢!!
二、找一个富文本编辑软件(如NOTEPAD+)编辑SQL语句,这样会很好地检查语法。有时候带参数较多检查语法复杂时,结合FineReport中生成的日志,再找一个第三方数据库访问软件(如PL/SQL)进行数据检索,可以很快定位语法错误。
- mysql linux启动与停止
墙头上一根草
如何启动/停止/重启MySQL一、启动方式1、使用 service 启动:service mysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&二、停止1、使用 service 启动:service mysqld stop2、使用 mysqld 脚本启动:/etc/inin
- Spring中事务管理浅谈
aijuans
spring事务管理
Spring中事务管理浅谈
By Tony Jiang@2012-1-20 Spring中对事务的声明式管理
拿一个XML举例
[html]
view plain
copy
print
?
<?xml version="1.0" encoding="UTF-8"?>&nb
- php中隐形字符65279(utf-8的BOM头)问题
alxw4616
php中隐形字符65279(utf-8的BOM头)问题
今天遇到一个问题. php输出JSON 前端在解析时发生问题:parsererror.
调试:
1.仔细对比字符串发现字符串拼写正确.怀疑是 非打印字符的问题.
2.逐一将字符串还原为unicode编码. 发现在字符串头的位置出现了一个 65279的非打印字符.
 
- 调用对象是否需要传递对象(初学者一定要注意这个问题)
百合不是茶
对象的传递与调用技巧
类和对象的简单的复习,在做项目的过程中有时候不知道怎样来调用类创建的对象,简单的几个类可以看清楚,一般在项目中创建十几个类往往就不知道怎么来看
为了以后能够看清楚,现在来回顾一下类和对象的创建,对象的调用和传递(前面写过一篇)
类和对象的基础概念:
JAVA中万事万物都是类 类有字段(属性),方法,嵌套类和嵌套接
- JDK1.5 AtomicLong实例
bijian1013
javathreadjava多线程AtomicLong
JDK1.5 AtomicLong实例
类 AtomicLong
可以用原子方式更新的 long 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicLong 可用在应用程序中(如以原子方式增加的序列号),并且不能用于替换 Long。但是,此类确实扩展了 Number,允许那些处理基于数字类的工具和实用工具进行统一访问。
 
- 自定义的RPC的Java实现
bijian1013
javarpc
网上看到纯java实现的RPC,很不错。
RPC的全名Remote Process Call,即远程过程调用。使用RPC,可以像使用本地的程序一样使用远程服务器上的程序。下面是一个简单的RPC 调用实例,从中可以看到RPC如何
- 【RPC框架Hessian一】Hessian RPC Hello World
bit1129
Hello world
什么是Hessian
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary p
- 【Spark九十五】Spark Shell操作Spark SQL
bit1129
shell
在Spark Shell上,通过创建HiveContext可以直接进行Hive操作
1. 操作Hive中已存在的表
[hadoop@hadoop bin]$ ./spark-shell
Spark assembly has been built with Hive, including Datanucleus jars on classpath
Welcom
- F5 往header加入客户端的ip
ronin47
when HTTP_RESPONSE {if {[HTTP::is_redirect]}{ HTTP::header replace Location [string map {:port/ /} [HTTP::header value Location]]HTTP::header replace Lo
- java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/2541117420116135376632/
写了个java版的
public class GreatestLeftRightDiff {
/**
* Q61.在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差。
* 求所有数对之差的最大值。例如在数组
- mongoDB 索引
开窍的石头
mongoDB索引
在这一节中我们讲讲在mongo中如何创建索引
得到当前查询的索引信息
db.user.find(_id:12).explain();
cursor: basicCoursor 指的是没有索引
&
- [硬件和系统]迎峰度夏
comsci
系统
从这几天的气温来看,今年夏天的高温天气可能会维持在一个比较长的时间内
所以,从现在开始准备渡过炎热的夏天。。。。
每间房屋要有一个落地电风扇,一个空调(空调的功率和房间的面积有密切的关系)
坐的,躺的地方要有凉垫,床上要有凉席
电脑的机箱
- 基于ThinkPHP开发的公司官网
cuiyadll
行业系统
后端基于ThinkPHP,前端基于jQuery和BootstrapCo.MZ 企业系统
轻量级企业网站管理系统
运行环境:PHP5.3+, MySQL5.0
系统预览
系统下载:http://www.tecmz.com
预览地址:http://co.tecmz.com
各种设备自适应
响应式的网站设计能够对用户产生友好度,并且对于
- Transaction and redelivery in JMS (JMS的事务和失败消息重发机制)
darrenzhu
jms事务承认MQacknowledge
JMS Message Delivery Reliability and Acknowledgement Patterns
http://wso2.com/library/articles/2013/01/jms-message-delivery-reliability-acknowledgement-patterns/
Transaction and redelivery in
- Centos添加硬盘完全教程
dcj3sjt126com
linuxcentoshardware
Linux的硬盘识别:
sda 表示第1块SCSI硬盘
hda 表示第1块IDE硬盘
scd0 表示第1个USB光驱
一般使用“fdisk -l”命
- yii2 restful web服务路由
dcj3sjt126com
PHPyii2
路由
随着资源和控制器类准备,您可以使用URL如 http://localhost/index.php?r=user/create访问资源,类似于你可以用正常的Web应用程序做法。
在实践中,你通常要用美观的URL并采取有优势的HTTP动词。 例如,请求POST /users意味着访问user/create动作。 这可以很容易地通过配置urlManager应用程序组件来完成 如下所示
- MongoDB查询(4)——游标和分页[八]
eksliang
mongodbMongoDB游标MongoDB深分页
转载请出自出处:http://eksliang.iteye.com/blog/2177567 一、游标
数据库使用游标返回find的执行结果。客户端对游标的实现通常能够对最终结果进行有效控制,从shell中定义一个游标非常简单,就是将查询结果分配给一个变量(用var声明的变量就是局部变量),便创建了一个游标,如下所示:
> var
- Activity的四种启动模式和onNewIntent()
gundumw100
android
Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。
Android总Activity的启动模式分为四种:
Activity启动模式设置:
<acti
- 攻城狮送女友的CSS3生日蛋糕
ini
htmlWebhtml5csscss3
在线预览:http://keleyi.com/keleyi/phtml/html5/29.htm
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>攻城狮送女友的CSS3生日蛋糕-柯乐义<
- 读源码学Servlet(1)GenericServlet 源码分析
jzinfo
tomcatWebservlet网络应用网络协议
Servlet API的核心就是javax.servlet.Servlet接口,所有的Servlet 类(抽象的或者自己写的)都必须实现这个接口。在Servlet接口中定义了5个方法,其中有3个方法是由Servlet 容器在Servlet的生命周期的不同阶段来调用的特定方法。
先看javax.servlet.servlet接口源码:
package
- JAVA进阶:VO(DTO)与PO(DAO)之间的转换
snoopy7713
javaVOHibernatepo
PO即 Persistence Object VO即 Value Object
VO和PO的主要区别在于: VO是独立的Java Object。 PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。
实际上,这个VO被用作Data Transfer
- mongodb group by date 聚合查询日期 统计每天数据(信息量)
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
/* 1 */
{
"_id" : ObjectId("557ac1e2153c43c320393d9d"),
"msgType" : "text",
"sendTime" : ISODate("2015-06-12T11:26:26.000Z")
- java之18天 常用的类(一)
Luob.
MathDateSystemRuntimeRundom
System类
import java.util.Properties;
/**
* System:
* out:标准输出,默认是控制台
* in:标准输入,默认是键盘
*
* 描述系统的一些信息
* 获取系统的属性信息:Properties getProperties();
*
*
*
*/
public class Sy
- maven
wuai
maven
1、安装maven:解压缩、添加M2_HOME、添加环境变量path
2、创建maven_home文件夹,创建项目mvn_ch01,在其下面建立src、pom.xml,在src下面简历main、test、main下面建立java文件夹
3、编写类,在java文件夹下面依照类的包逐层创建文件夹,将此类放入最后一级文件夹
4、进入mvn_ch01
4.1、mvn compile ,执行后会在