类型
可以包含数据的变量(或常量),可以使用不同的数据类型或类型来保存数据。使用 var 声明的变量的值会自动初始化为该类型的零值。类型定义了某个变量的值的集合与可对其进行操作的集合。
均为小写,关键字不能作为标识符使用
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 |
作者: Joe Birch
原文地址:https://flutterdoc.com/bottom-sheets-in-flutter-ec05c90453e7
Bottom sheets
(底部菜单或底部页面)是(移动设备)屏幕底部展示内容给用户的视图(widget) — 这样或许可以促进与用户进一步的交互或展示其他内容的一些形式。通常固定在屏幕的底部,并方便用户隐藏。在Flutter中,有2种开箱即用(声明式)的bottom sheet widget
,分别是 Persistent Bottom Sheet 和 Modal Bottom Sheet — 那么我们来看下这些widget是如何运行,同时在我们的apps中如何去使用它们。
在前端进行业务的计算时,出现了一点错误:
1 | var a = 0.1 ; |
很奇怪,为什么不直接等于0.3
数值始终是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 | var a = 0.1 ; |
3、将浮点数转字符串,再模拟实际计算
最近看到Flutter,所以准备玩下这个~
之前看过《小王子》的电影,最近和朋友出去玩的时候,路过一个书店,偶然间想买本原著回来看看。故事很短,结局也让人不禁遐想,最后小王子是否回到那颗属于他的星球,他那爱慕虚荣的玫瑰还会驯养他吗?或者正在除掉刚刚发现的面包树苗,累了就在死火山上休息下,或者搬凳子去看看日落也好。