微笑睫毛膏

文章
7
资源
0
加入时间
2年10月17天

阿里P8级架构师怎么处理电商业务中的数值计算的精度/舍入/溢出问题?1 计算器的灾难:10%+10%到底等于几?2 满目疮痍的Double3 救世的BigDecimal4 浮点数的舍入和格式化5 equals做判等就一定对?6 溢出问题

1 计算器的灾难:10%+10%到底等于几?我们人类以为是 0.2,可是打开手机计算器试试呢?解密国外计算程序使用的单步计算法。于是,a+b%表示a*(1+b%)。所以,手机计算器实际上在计算10%*(1+10%)= 0.11。再通俗点一句话说清运算原理。以8+10%为例,为什么=8.8而不是8.1?一起读:8元钱,加上10%的小费,一共是8.8元。最早的电子计算器并没有%,是后来加的。作为后续改进,它一定解决了计算场景中的常用痛点,而绝不是脑残。我推测很可能是西方人计算折扣、小费、利息等

Intent组件之间实现通信

Intent(意图)常见的就是用来绑定应用程序组件,并在应用程序间进行 通信.一般用于启动Activity、启动服务、发送广播 (承担三大组件之间的通信)启动组件常用方法对Activity ——–》startActivity(Intent intent) / startActivityForResult(Intent intent)对service —

MySQL 在windows环境下的启动错误:1053关于MySQL 在windows环境下的启动错误:1053的解决方案

关于MySQL 在windows环境下的启动错误:1053的解决方案在修改配置文件my.ini后出现该问题:如果是在修改了配置文件my.ini后出现1503的错误,那么很可能是因为在保存配置文件操作时,配置文件的编码也被改动了所引起的,因此,可以尝试如下操作:再次打开配置文件,选择另存为,然后以ANSI编码保存,再替换原有配置文件 如果因为之前的启动失败,导致MySQL服务一直处于 ...

Docker搭建ELK一、安装Elasticsearch二、安装Logstash三、安装Kibana

debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。...

Android百度map默认位置中心点设置

//设定中心点坐标         LatLng cenpt = new LatLng(29.806651,121.606983);         //定义地图状态        MapStatus mMapStatus = new MapStatus.Builder()        .target(cenpt)        .zoom(18)        .bui