做电子商务的时候一般会涉及到金额的比较,按正常的思路来看用><=这些个符号就可以了.可是要是到程序上来搞这个的话就出大事了.现在看下这段代码: $f = 0.07; var_dump($f * 100 == 7);//输出false 输出结果会出乎大家意料,输出false,为什么会这样呢?其实这个和电脑中存储小数的原理有关.大家都知道计算机只能存储0和1,我们日常生活习惯使用的是10进制的数据,像0.07这个小数在计算机中存储时会有精度损失,以至于计算出来的结果会有偏差. 那么怎么解决这个问题…
在 Java.C# 中,相信如果是 boolean 类型值,只有两种选择 true.false.然而,在 SQL 查询中,NULL 值的引入,使得新增了 UNKNOW ,因此,就产生了 TRUE.FALSE.UNKNOW 三种选择. NULL :在 C#.Java 语言中,NULL 作为一个值(引用类型字段默认初始值,注意区别 NULL.空字符串区别),代表未指向内存堆空间中任何对象(此处,就不在细讲,可以去详细了解一下基本类型.引用类型在内存堆栈上存储区别).而在数据库中,NULL 同样作为一…
这是今天作项目支持的发现的一个关于WCF的问题,虽然最终我只是添加了一行代码就解决了这个问题,但是整个纠错过程是痛苦的,甚至最终发现这个问题都具有偶然性.具体来说,这是一个关于如何自动为服务接口(契约)的每个操作添加FaultContract与WCF服务元数据发布的问题.接下来通过一个简单的实例来说明这个因为少写了一行代码引发的血案. 一.手工添加FaultContract WCF采用基于消息的通信方式,Endpoint的ABC三要素之一的契约(Contract)的本质就是定义消息的结构.契约不…
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡.容灾和集群功能 Registry: 服务目录框架用于服务的注册和服务事件发布和订阅 Dubbo工作原理: 本文将通过实例进行讲解,包括入门以及和springMV…
安全防范:nginx下git引发的隐私泄露问题 1   安全事件 最近阿里云服务器后台管理系统中收到一条安全提示消息,系统配置信息泄露: http://my.domain.com/.git/config 能够被公网无认证即可访问,请修复. 一般情况下,配置信息泄露是相当严重的问题,往往会千万另外一个地方整片区域的 沦陷,比如:数据库.当然本例并没有这样,但是可以作为一个典型安全来进行讲解. 2   问题分析 由于目前的 web 项目的开发采用前后端完全分离的架构:前端全部使用静态文件,和后端代码…
Integer.parseInt 处理一个空字符串, 结果出错了, 程序没有注意到,搞了很久, 引发了血案啊!! 最后,终于 观察到了, 最后的部分: Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.lk.common.util.LKUtil 还以为是class 不存在呢!! 于是,反复的复制啊, 黏贴啊, 我擦, 明明LKUtil就在那里的啊!!! 怎么回事! 实际原因就是这个啊: Caused…
异常: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式.请确保您的 Main 函数带有 STAThreadAttribute 标记. 只有将调试器附加到该进程才会引发此异常. 方法1: class Program { /// <summary> /// 图片资料文件同步 /// </summary> /// <param name="args"></param> [STAThread] //加这个属性,创建并进入单…
刚上线一个新版本,其中有台电脑打开软件就报[xx的类型初始值设定项引发异常](还好不是一大波电脑,新东西上线就怕哀鸿遍野),如图: 显然是该类型的静态构造函数中抛异常了(红线处就是类名),遂打开该类,其构造函数中唯有一句看起来可能引发异常,即: Process.EnterDebugMode(); //用来开启本进程调试特权(SeDebugPrivilege) 随即把这句放到一个测试程序中,再把测试程序拷到问题电脑上跑,果然是它,抛异常:Win32Exception:并非所有引用的特权或组都分配给…
金额规则大写 在涉及金额的流程中经常会遇到需要大写金额数据与小写金额匹配,如何实现输入数字后自动转换呢? 初级用法: 1.在默认表单基本属性javascript 中增加如下金额转换方法 /** 数字金额大写转换(可以处理整数,小数,负数) */ function chineseNumber(dValue) { var maxDec = 2; // 验证输入金额数值或数值字符串: dValue = dValue.toString().replace(/,/g, ""); dValue =…
<script language="javascript" type="text/javascript">         function Arabia_to_Chinese(Num) {             for (i = Num.length - 1; i >= 0; i--) {                 Num = Num.replace(",", "")//替换tomoney()中的“…
[原创申明:文章为原创,欢迎非盈利性转载,但转载必须注明来源] 这是在我们开发的一个支付系统中暴露的一个BUG,问题本身比较简单,有意思的是解决问题的过程.将过程分享出来,希望能够对大家有所帮助. 一.错误现象 在我们的支付系统中,有一个账户模块负责记录交易的流水,以供后续的查询以及对账清账等功能使用.就在春节放假前最后一天,当客户完成交易后,运营同事发现一个天大的问题,流水表中的部分金额,跟提交支付的金额有出入,差了几分钱. 这位客官说了,几分钱的问题,还是问题?哈哈,我也这么想,奈何运营.产…
公众号HelloJava刊出一篇<MySQL Statement cancellation timer 故障排查分享>,作者的某服务的线上机器报 502(502是 nginx 做后端健康检查时不能连接到 server 时抛出的提示),他用 jstack -l 打印线程堆栈,发现了大量可疑的“MySQL Statementcancellation timer”,进一步探究原因,原来是业务应用将数据库更新操作和云存储传图操作放在同一个事务.当云存储发生异常时,由于缺少云存储操作的快速失败,并且缺少…
项目中要用到格式化金额输入框,要求每三个数字用逗号分割开. 添加一个directive angular.module('myApp.directives', []) .directive('filterInput',['$filter', function ($filter){ return { restrict: 'A', require: 'ngModel', link: function(scope, element, attr, ngModel) { ngModel.$parsers.p…
在实际开发过程中,经常会遇到些不能让用户随便地输入手机号码,对输入的手机号码的正确判断:有些输入框只能输入数字,不能输入字母或特殊字符:还有些如价格金额之类的就只能输入数字和小数点且小数点后面保留两位. ///// 手机号码的有效性判断//检测是否是手机号码- (BOOL)isMobileNumber:(NSString *)mobileNum{    /**     * 手机号码     * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159…
一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时代.大多数编程语言,尤其是近年问世的一些语言,都很好的支持了面向对象,您可能对此了如执掌,但是一些语言在OO方面却无法与其它高级语言相比,在这些语言上进行面向对象程序设计和开发会有些困难,例如本文要讨论的JavaScript.JavaScript是一门古老的语言,但是随着近期Web2.0 技术的热捧…
短信平台记录日志模块,是通过异步方式来记录的,即日志工具类里初始化一个Queue对象,公共的写日志方法的处理逻辑是把日志消息放到Queue里.构造器里设定一个死循环,不停的读队,然后把日志消息持久化到磁盘的文本文件里. 构造方法的代码如下: public Log() { //开启线程负责将日志写入到指定地点 ThreadPool.QueueUserWorkItem(o => { try { while (true) { ) { lock (_messageQueue) { ) { LogMess…
最近公司客服提交了个BUG,说是更新产品详细信息时,有的可以有的更新不了,前段时间一直没空所以暂时放下,刚才又出现这个问题,所以马上处理了一下. 打开项目解决方案,进入DEBUG模式,拿到操作的数据提交后进行追踪,发现提交时产生了:System.Data.SqlClient.SqlException (0x80131904): 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确.参数 4 ("@up_xxx"): 数据类型 0xA7 的数据长度或元数据长度无效. 百度一下…
在SQL Server的应用开发过程(尤其是二次开发)中可能由于开发人员对表的结构不够了解,造成开发过程中使用了不合理的方式造成数据库引擎未按预定执行,以致影响业务.这是非常值得注意的.这次为大家介绍由于隐式数据类型转换而造成的死锁及相应解决方案. 现实中有些程序员/数据库开发者会根据数据库的处理机制实现一些应用,如抢座应用,可能会对事务中的查询加一些列的Hint以细化粒度,实现应用的同时使得影响最低,但也有可能因为一些小细节的欠缺而引发错误,从而造成糟糕的用户体验.如下面这个例子 生成测试数据…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在上一章里讲解地图平移功能的实现时,我在最后提出了两个问题: A.在地图平移后,矢量图层的canvas的XY都发生了变化,此时根据地理坐标转换为屏幕坐标公式得出的屏幕坐标,在canvas上能将要素正确显示吗? B.矢量图层canvas的原点坐标XY有需要还原成初始的(0,0)的时候吗? 对这两个问题我给出的答案是:不能和需要. 在这一章里,我们将详细讲解得出…
一.现状说明: 就在这金三银四的求职黄金时期,我有幸作为公司的独立技术面试官,拥有最终决定录用权,在倍受上级领导的充分信任下,我也向上级保证,一定要为公司找到合适的人才,就在我满怀信心的情况下面试了一个又一个的求职者,发现了大多数求职者共同的问题,一是:眼高手低,即工作年限虽长,但受工作内容及个人原因,基础知识薄弱,很多技术使用了N年,却不明白其原理,可以说是:只知道这样用,但为什么要这样用,能否有别的解决方案从来都没有去考虑过或总结过,知识的广度就更不用说了,薪资期望却都很高.二是:B/S与C…
尝试加载 Oracle 客户端库时引发 BadImageFormatException 工程师给计算机诊断,就像医生给病人诊断一样,很多同样的症状,可能是由多种截然不同的原因导致的.   最近进行C# Oracle开发时,遇到一个问题"尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题."   在网上找了一些资料:   1.http://www.cnblogs.…
$("#batch_diff_percent").keyup(function () { var reg = $(this).val().match(/\d+\.?\d{0,2}/); var txt = ''; if (reg != null) { txt = reg[0]; } $(this).val(txt); }).change(function () { $(this).keypress(); var v = $(this).val(); if (/\.$/.test(v))…
今天遇到了一个很有意思的NUMBER类型Scale引发的问题,我用一个简单的测试用例来展示一下这个案例.假如有个TEST的表,有个字段类型为NUMBER,我插入下面两条数据 CREATE TABLE TEST (      Category VARCHAR(12),      QTY  NUMBER )   INSERT INTO TEST SELECT 'M', 12 FROM DUAL UNION ALL SELECT 'C', 0.99999999999999999 FROM DUAL;…
An event can be raised only from the declaration space in which it is declared. Therefore, a class cannot raise events from any other class, even one from which it is derived. 事件只能在它被声明的声明空间(类)中使用.所以不能从任何其他类引发,即使该类是事件所在类的继承类. 那我们如何才可以引发基类中的事件,给个实例大家一…
对于C#中异常:“The type initializer to throw an exception(类型初始值设定项引发异常)”的简单分析,目前本人分析两种情况,如下: 情况一: 借鉴麒麟.NET的类型初始值设定项引发异常文章!!!写的很详细,大家可以看一看! 其实麒麟.NET的这篇文章主要讲解分析了静态成员的方面,总的说就是:类型初始化或访问类型的静态成员时,都会对类中的其他静态成员进行初始化,如果有静态构造函数的话,一并执行静态构造函数.在这过程中所引发的异常我就直接借鉴麒麟.NET的例…
在这里介绍一次因为更改网站地址而引发服务器IO读取速度,网络流入流出速度暴涨10倍的解决经历. 环境:Ubuntu + Nginx + php-cgi + Wordpress 事情是这样的,现在网站使用的wordpress搭建的,网址为www.main.com(一个例子), 因为要启用新站点news.main.com,于是开启wordpress multi sites的功能. 开启MS功能过程中,受Wordpress MS 本身的限制,需要将之前的www.main.com更改为main.com,…
本系列博文计划: 1.剖析基于Python的Web框架Tornado的源码 2.为Python开发一个完善的MVC框架 首先将带着大家一起来剖析基于python编写的Web框架 tornado ,本着易读易懂的目标来写这一系列,寄希让小白也能zeng明白其中的道理,与其说剖析还不如说是白话,因为本系列都会用通俗的语言去描述Web框架中的各个知识点. 一个脚本引发的一场“血案”.... 运行脚本并在浏览器上访问http://127.0.0.1:8080 #!/usr/bin/env python…
在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题var price = 10.99;var quantity = 7;var needPay = parseFloat(price * quantity); needPay的正确结果应该是76.93元  但是运行后发现needPay为76.93000000000001 此情况可通过 toFixed(n)  方法修正 但是这个方法对 js版本要求较高 不能兼容ie5 另一个解决方案是: 将元为单位的金额乘以100换算为分进…
iOS textField输入金额的限制,小数点前9位,后面两位,如果不加小数点,最大位数是9位,加上小数点,最大位数是12位,超出最大位数可删除 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // 判断是否输入内容,或者用户点击的是键盘的删除按钮 if (![string isEqualT…
//总金额平均分配给总人数 //参数说明:总金额,总人数,最大金额为平均金额的倍率 public double[] GetList(double zje,int zrs,int max) { double total = zje;//总金额 int count = zrs;//总人数 double avg = total / count; double[] list = new double[count]; int seed = 1; while (count > 0) { if (count…