Numbers——Dart

简介: Dart中的数字类型有两种,int和double。

Numbers——Dart

Dart中的数字类型有两种,int和double。

int

int 数值的范围不再是64位,取决于平台。
在Dart虚拟机上,范围是-2^63 to 2^63 - 1.
在编译成JavaScript上时使用的是JavaScript numbers,范围是-2^53 to 2^53 - 1。

double

双精度浮点型数字类型,在IEEE 754 standard中指定。

int 和 double 都是num的子类。num类型包含一些基本操作,加减乘除,还有 abs(), ceil(), and floor()等方法。

int 类中还定义了按位操作符 shift(<<, >>), AND (&), and OR (|)。

assert((3 << 1) == 6); // 0011 << 1 == 0110
assert((3 >> 1) == 1); // 0011 >> 1 == 0001
assert((3 | 4) == 7); // 0011 | 0100 == 0111

更多的算术操作符,可以查看 dart:math 库。

int是没有小数点的num,如下:

var x = 1;
var hex = 0xDEADBEEF;

如果数字包含小数点,那就是double类型的。如下所示:

var y = 1.1;
var exponents = 1.42e5;

在Dart2.1版本中,必要时,int 字面值可以自动转化为double.

double z = 1; // Equivalent to double z = 1.0.

需要注意的是:在Dart2.1版本以前,int字面值不能当做double使用,会报错。

下面展示了如何将String转化为number类型,反之亦然:

// String -> int
var one = int.parse('1');
assert(one == 1);

// String -> double
var onePointOne = double.parse('1.1');
assert(onePointOne == 1.1);

// int -> String
String oneAsString = 1.toString();
assert(oneAsString == '1');

// double -> String
String piAsString = 3.14159.toStringAsFixed(2);
assert(piAsString == '3.14');

numbers 字面值是编译时常量。许多数学表达式也是编译时常量,只需要确保他们的操作数也是numbers类型的编译时常量即可。

参考:
https://www.dartlang.org/guides/language/language-tour#numbers

相关文章
|
7月前
|
Dart 编译器 API
Dart笔记:Dart 库
Dart笔记:Dart 库
190 0
|
开发框架 Dart Java
Flutter中Dart语言常用知识
@[TOC](目录) Flutter 是一种使用 Dart 语言开发的跨平台移动应用程序框架。在 Flutter 中,Dart 语言是主要的编程语言,它提供了许多强大的功能和语法糖,可以让开发者更轻松地构建高性能、美观的应用程序。下面是 Flutter 中 Dart 语言的一些详细介绍和代码示例: # 1. 变量和数据类型 在 Dart 语言中,变量不需要声明,可以直接赋值。Dart 语言支持多种数据类型,包括整数、浮点数、布尔值、字符串、列表、映射等。例如: ```dart int a = 10; double b = 3.14; bool c = true; String
121 0
|
JSON Dart 编译器
Dart简单介绍
Dart是一种面向对象、用于构建高性能应用程序的编程语言,它具有快速开发、易于维护和可移植性等特点,因此在 Flutter 应用程序开发方面越来越受欢迎。在这篇文章中,我们将深入探讨 Dart 语言的一些技术思考。 类型系统
Dart简单介绍
Runes——Dart
Dart中,Runes是指UTF-32定义的Unicode字符串。 Unicode使用数字表示世界上所有的字母、数字和符号。因为Dart中的String是一系列UTF-16字节单元,而在String中想要表示32位的Unicode值,则需要特殊的语法。 一般我们使用 `\uXXXX` 这种形式表示一个Unicode码,`XXXX`表示4个十六进制值。例如,字符(♥)的Unicode字符是`\u2665`。 当十六进制数据多余或者少于4位时,将十六进制数放入到花括号中,例如,微笑表情(😆)是`\u{1f600}`。 String类中有几个属性你可以用来获取`rune`信息。
|
Dart
在 dart 中使用 equatable
在 dart 中使用 equatable
188 0
|
Dart 开发工具
使用 dart tear-off
使用 dart tear-off
149 0
|
Dart
Flutter之搞定Dart(二上)
这里,我只列出来相对其他语言比较特殊的运算符,因为某些运算符太简单了,不浪费时间,比如+、-、+=、==。 你可能会疑惑,Dart为什么要搞出这么多特殊的运算符呢? 你要坚信一点:所有这些特殊的运算符都是为了让我们在开发中可以更加方便的操作,而不是让我们的编码变得更加复杂。
170 0
Flutter之搞定Dart(二上)
|
存储 Dart
Flutter之搞定Dart(二下)
这里,我只列出来相对其他语言比较特殊的运算符,因为某些运算符太简单了,不浪费时间,比如+、-、+=、==。 你可能会疑惑,Dart为什么要搞出这么多特殊的运算符呢? 你要坚信一点:所有这些特殊的运算符都是为了让我们在开发中可以更加方便的操作,而不是让我们的编码变得更加复杂。
335 0
Flutter之搞定Dart(二下)
|
自然语言处理 Dart JavaScript
Flutter之搞定Dart(一)
Google为Flutter选择了Dart就已经是既定的事实,无论你多么想用你熟悉的语言,比如JavaScript、Java、Swift、C++等来开发Flutter,至少目前都是不可以的。 在讲解Dart的过程中,我会假定你已经有一定的编程语言基础,比如JavaScript、Java、Python、C++等。
394 0
Flutter之搞定Dart(一)
|
Dart 监控 索引
Flutter之搞定Dart(二中)
这里,我只列出来相对其他语言比较特殊的运算符,因为某些运算符太简单了,不浪费时间,比如+、-、+=、==。 你可能会疑惑,Dart为什么要搞出这么多特殊的运算符呢? 你要坚信一点:所有这些特殊的运算符都是为了让我们在开发中可以更加方便的操作,而不是让我们的编码变得更加复杂。
200 0