ZRoger's Blog


  • 首页

  • 自我介绍

  • 文章分类

  • 时间线

  • 搜索

TypeScript 基础类型

发表于 2020-04-08
字数统计: 1.5k | 阅读时长 ≈ 6

TypeScript 支持与 JavaScript 几乎相同的数据类型,同时还提供了枚举类型

阅读全文 »

TypeScript 解构与展开

发表于 2020-04-08
字数统计: 1.3k | 阅读时长 ≈ 5

解构赋值语法是一种JavaScript表达式,可以将数组中的值或对象中的属性解压缩为不同的变量。

阅读全文 »

NexT&第三方服务

发表于 2020-04-05
字数统计: 137 | 阅读时长 ≈ 1

文章阅读数量记录

关于文章阅读数量,可以使用LeanCloud,还有Google的,或者是不蒜子统计

这里选用的LeanCloud,可以看doublemine这篇文章

时间:2020年4月5日

如果LeanCloud的服务长时间不用,会被停掉并且归档,所以还是需要时不时上去看看~

从排序数组中删除重复项

发表于 2020-01-05
字数统计: 488 | 阅读时长 ≈ 2

题目地址

题目地址:https://leetcode.com/problems/remove-duplicates-from-sorted-array/

思路

  • 数组下标
  • 快慢指针

使用快慢指针来记录遍历的坐标。

  • 开始时这两个指针都指向第一个数字
  • 如果两个指针指的数字相同,则快指针向前走一步
  • 如果不同,则两个指针都向前走一步(之后将慢指针所在的节点值换成快指针所指位置)
  • 当快指针走完整个数组后,慢指针当前的坐标加1就是数组中不同数字的个数
阅读全文 »

Go 类型与变量

发表于 2019-09-16
字数统计: 1.5k | 阅读时长 ≈ 6

类型

可以包含数据的变量(或常量),可以使用不同的数据类型或类型来保存数据。使用 var 声明的变量的值会自动初始化为该类型的零值。类型定义了某个变量的值的集合与可对其进行操作的集合。

阅读全文 »

Go&Plan 9

发表于 2019-09-16
字数统计: 312 | 阅读时长 ≈ 1

Plan 9

Plan 9是什么

它是一个网络操作系统(大规模集群)或者说是一种概念,来自贝尔实验室,由Ken Thompson、Dennis Ritchied等大神开发。

阅读全文 »

Go 程序的基本结构和要素

发表于 2019-09-15
字数统计: 1.2k | 阅读时长 ≈ 4

内置关键字

均为小写,关键字不能作为标识符使用

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
阅读全文 »

Go 安装配置与Demo

发表于 2019-09-14
字数统计: 1.5k | 阅读时长 ≈ 5

什么是Go ?

​ Go是一门 并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。

阅读全文 »

【译】Flutter中的Bottom sheets

发表于 2019-08-21
字数统计: 1.5k | 阅读时长 ≈ 5

作者: Joe Birch

原文地址:https://flutterdoc.com/bottom-sheets-in-flutter-ec05c90453e7

1_PXlGmKUbyn0cO8E_ncM6Rw

Bottom sheets(底部菜单或底部页面)是(移动设备)屏幕底部展示内容给用户的视图(widget) — 这样或许可以促进与用户进一步的交互或展示其他内容的一些形式。通常固定在屏幕的底部,并方便用户隐藏。在Flutter中,有2种开箱即用(声明式)的bottom sheet widget,分别是 Persistent Bottom Sheet 和 Modal Bottom Sheet — 那么我们来看下这些widget是如何运行,同时在我们的apps中如何去使用它们。

阅读全文 »

JavaScript浮点计算

发表于 2019-07-02
字数统计: 346 | 阅读时长 ≈ 1

0.30000000000000004

在前端进行业务的计算时,出现了一点错误:

1
2
3
4
5
6
var a = 0.1 ;
var b = 0.2 ;
console.log(a+b);

// 结果
0.30000000000000004

很奇怪,为什么不直接等于0.3

JavaScript中的数字

数值始终是64位的双精度浮点数,0到51存储数字(片段),52 到 62 存储指数,63 位存储符号。

值(aka Fraction/Mantissa) 指数 符号
52 bits(0 - 51) 11 bits (52 - 62) 1 bit (63)

整数会被精确到15位、小数最大数是17位。

对于小数的二进制

系统是将10进制转为二进制再进行计算,0.1的二进制是0001100110...,后面就一直重复0011,0.2的二进制是0011..,也是重复0011。两个二进制再相加,再转为十进制就是0.30000000000000004。

解决方法

1、 先乘后除,缺点是 相乘的结果已经超过了 MAX_SAFE_INTEGER 会出现错误

1
var x = (0.2 * 10 + 0.1 * 10) / 10;

2、指定精度的四舍五入,小数太多,也不是很理想

1
2
3
4
var a = 0.1 ;
var b = 0.2 ;
var c = a+b ;
console.log(parseFloat(c.toFixed(12)));

3、将浮点数转字符串,再模拟实际计算

bignumber.js,decimal.js,以及big.js等

1234
ZRoger

ZRoger

一分耕耘一分收获

37 日志
41 标签
RSS
神奇的链接
  • ArtStation
  • Dribbble
  • V2EX
© 2018 — 2025 ZRoger
|
主题 — NexT.Pisces v5.1.4
0%