当前位置: 首页 > news >正文

公司网站打不开wordpress 上传插件

公司网站打不开,wordpress 上传插件,网站建设对帮助信息的设置,用什么技术做网站float和double主要为了科学计算和工程计算而设计,执行二进制浮点运算,这是为了在广泛的数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不适合用于需要精确结果的场合,尤其是…

float和double主要为了科学计算和工程计算而设计,执行二进制浮点运算,这是为了在广泛的数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不适合用于需要精确结果的场合,尤其是货币计算。

例如当前有1.03元,花掉0.42元后,应该还有0.61元。但是我们在使用float类型进行计算时,其结果是不准确的,如下所示:

System.out.println(1.03 - 0.42); //0.6100000000000001

使用舍入可以解决上面问题,但并不是所有的问题都能用舍入解决。例如当前总金额有1元,有0.1、0.2、0.3元的商品,从0.1开始买,直到不能支付为止:

public static void main(String[] args) {double money = 1.00;int total = 0;for(double price = 0.1; money >= price; price += 0.1) {money = money - price;total++;}System.out.println("商品购买数:"+ total);System.out.println("余额:" + money);
}

执行上述代码,其运行结果为:

商品购买数:3
余额:0.3999999999999999

使用BigDecimal代替double是可以解决上述问题的,但是出现了一个会忽略的意外,示例代码如下:

public static void main(String[] args) {final BigDecimal increasePrice = new BigDecimal(0.1);BigDecimal money = BigDecimal.valueOf(1.0);int total = 0;for (BigDecimal price = new BigDecimal("0.10"); money.compareTo(price) >= 0; price = price.add(increasePrice)) {money = money.subtract(price);total++;}System.out.println("商品购买数:" + total);System.out.println("余额:" + money);
}

执行上述代码,其运行结果为:

商品购买数:3
余额:0.3999999999999999833466546306226518936455249786376953125

可以看到其运行结果和预期的不一样,这是由于使用BigDecimal的构造方法直接来转换float或者double类型时,会存在数据值不准确的情况。如果想要计算准确的话,可以使用采用下述两种方法来创建BigDecimal对象:构建参数为字符串或者使用valueOf方法:

final BigDecimal increasePrice = new BigDecimal("0.1");
final BigDecimal increasePrice = BigDecimal.valueOf(0.1);
public static void main(String[] args) {final BigDecimal increasePrice = BigDecimal.valueOf(0.1);BigDecimal money = new BigDecimal(1.0);int total = 0;for (BigDecimal price = new BigDecimal("0.10"); money.compareTo(price) >= 0; price = price.add(increasePrice)) {money = money.subtract(price);total++;}System.out.println("商品购买数:" + total);System.out.println("余额:" + money);
}

再次执行上述代码,其运行结果为: 

商品购买数:4
余额:0.00

但是使用BigDecimal有下述三个缺点: 

  • 与基本类型相比,不方便(需要创建BigDecimal对象);
  • 速度慢
  • 直接使用构造方法转换double或者float,会存在数据不准确的情况 

除了使用BigDecimal,还可以使用int或者long,取决于涉及的数值大小,同时要自己处理十进制小数,例如上述案例中金额以分为单位,而不是以元为单位计算,就可以使用int来处理: 

public static void main(String[] args) {int money = 100;int total = 0;for (int price = 10; money >= price; price += 10) {money = money - price;total++;}System.out.println("商品购买数:" + total);System.out.println("余额:" + money);
}

总结:

  • 对于任何需要精确答案的计算任务,请不要使用float或者double。
  • 如果你想让系统来记录十进制小数点,并且不介意因为不使用基本类型而带来的不便,就请使用BigDecimal。使用BigDecimal还有一些额外的好处,它允许你完全控制舍入,每当一个操作涉及舍入的时候,他允许你从8种舍入模式中选择其一。如果你正通过法定要求的舍入行为进行业务计算,使用BigDecimal是非常方便的。
  • 如果性能非常关键,并且不介意自己记录十进制小数点,而且所涉及的数值又不太大,就可以使用int或者long。如果数值范围内没有超过9位十进制数字,就可以使用int;如果不超过18位数字,就可以使用long。如果数值可能超过18位数字,就必须使用BigDecimal。
http://www.yayakq.cn/news/68036/

相关文章:

  • 买了域名之后如何做网站建网站的小软件
  • 文章类网站选什么内容wordpress资讯
  • 筑站网络推广建设企业网站e路护航
  • 山西中交建设工程招标有限公司网站六安哪里有做推广网站
  • 网站做优化有什么用吗网页界面设计的特点
  • 网站建设 销售 知乎做外贸网站 深圳
  • 重庆网站建设开发做网站切图
  • 做导购网站用什么样的主机做移动互联网站点
  • 免费做产品画册的网站wordpress gif插件
  • 猪八戒网网站建设济南网站建设方案书
  • wap网站是什么意思seo公司外包
  • 深圳企业网站建设开发费用wordpress php慢
  • 住房建设部官方网站公司建设一个网站
  • 中国空间站结构示意图做看电视电影的网站赚钱
  • 合肥企业网站推广高等院校网站建设方案
  • 微信公众号(网站建设)合同wordpress后台代码修改
  • 什么网站做h5好wordpress生成小程序
  • 黄冈网站建设公司好看的手机端网站开发页面
  • 南京制作网站要多少钱网站建设审核
  • 王者做网站做网站会遇到哪些问题
  • 资源类网站怎么做wordpress前端调用插件函数
  • 正能量网站大全网站做支付宝接口
  • 目前流行的网站开发设计排名优化公司
  • 网站建设费用标准东莞seo关键词优化
  • 通过关键词优化提升企业网站青岛php网站建设
  • 医院网站开发方案io域名购买
  • 南阳网站建设培训转笔教学网站
  • 企业营销的网站广东省自然资源厅厅长陈光荣简历
  • 城乡建设局的官方网站新产品开发的5个步骤
  • 建站之家官网wordpress怎么入驻写模板