同时搞定Android和iOS的Dart语言(3):数值类型

2020-08-12 10:38:57 浏览数 (1)

Dart语言的数值类型非常简单,只有两个类型:int和double。其中int表示64位整数类型,double表示双精度浮点数。int和double的基本用法如下:

代码语言:javascript复制
int x = 20;
print(x);
double y = 20.12;
print(y);
print(x   y);    // 整数与浮点数相加的结果是浮点数

一旦变量的数据类型确定为int,那么就不能将一个浮点数或其他类型的值赋给这个变量,例如,下面的代码会抛出编译错误。

代码语言:javascript复制
int x = 20;
//x = 12.4;     // 抛出编译错误,无法将一个浮点数赋给一个int类型的变量
但可以将一个整数赋给一个double类型的变量,例如,下面的代码是正确的。double y = 20.12;
y = 40;

在Dart语言中有一个num类型,该类型既可以表示int类型,也可以表示double类型。也就是说,如果将一个变量声明为num类型,那么该变量既可以赋int类型的值,也可以赋double类型的值,代码如下:

代码语言:javascript复制
num k = 20;
k = 40.12;                         // 将int类型变为double类型
print(k.runtimeType.toString());     // 输出double

int类型支持十六进制表示法和科学计数法,代码如下:

代码语言:javascript复制
var hex = 0xABCD;              // 十六进制标识符
print(hex);                    // 按十进制输出,结果是43981
var v = 1.42e5;                // 科学计数法
print(v);                      // 输出结果:142000.0

下面的本例演示了内建数值类型更详细的用法。

代码语言:javascript复制
void main() {
  // x的值是int类型能表示的最大整数值
  int x = 9223372036854775807;
 
  print('x = $x');
  // 输出x的位长度,结果是63
  print('x.bitLength = ${x.bitLength}');
  double y = 20.4;
  // 输出变量y,其中通过$可以在字符串中嵌入变量,这些内容会在字符串一节中详细介绍
  print('y = $y');
  num k = 20;
  print('k = $k');
  print(k.runtimeType.toString());
  k = 30.12;
 
  print('k = $k');
  print(k.runtimeType.toString());
 
  var a = 20;
  print(a.runtimeType.toString());
 
  const b = 40.2;
  print(b.runtimeType.toString());
  // 定义十六进制数
  var hex = 0xABC;
  print('hex = $hex');
  print(hex.runtimeType.toString());
  // 使用科学计数法定义整数
  var c = 1.42e5;
  print('c = $c');
  // 将字符串'1'转换为int类型的值
  var one = int.parse('1');
  print('one = $one');
  print(one.runtimeType.toString());
  // 将字符串'1.2'转换为double类型的值
  var onePointTwo = double.parse("1.2");
  print(onePointTwo.runtimeType.toString());
  // 将整数1转换为String类型的值
  var oneString = 1.toString();
  // 将浮点数3.1415926转换为String类型的值
  var piString = 3.1415926.toString();
  print(piString.runtimeType.toString());
  print(a   b * c);
 
}

运行结果如图1所示。

图1 数值类型用法演示

0 人点赞