如何申明整数类型 HarmonyOS 鸿蒙Next

如何申明整数类型 HarmonyOS 鸿蒙Next

let upper: number = 133 % 16;
let lower: number = 133 / 16;

如何让upper和lower成为整数

5 回复

可参考以下代码:

// 使用位运算符来截断浮点数
function floatToInt(val: number) {
  return val | 0
}

@Component
struct Index {
  @State message: string = 'Hello World';

  aboutToAppear(): void {
    let intValue1: number = Math.floor(133 / 16); //向下取整
    let intValue2: number = Math.ceil(133 / 16); //向上取整
    let intValue3: number = Math.round(133 / 16); //四舍五入取整
    let intValue4: number = Math.trunc(133 / 16); //返回整数部分取整
    let intValue5: number = floatToInt(133 / 16); //使用位运算符来截断浮点数
    console.log('intValue1:' + intValue1);
    console.log('intValue2:' + intValue2);
    console.log('intValue3:' + intValue3);
    console.log('intValue4:' + intValue4);
    console.log('intValue5:' + intValue5);
  }

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于如何申明整数类型 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以自定义一个Integer类型。具体代码如下:

// 定义整数类型标记
type Integer = number & { readonly __brand__: 'integer' };

// 类型保护函数(验证是否为整数)
function isInteger(n: number): n is Integer {
  return Number.isInteger(n);
}

// 转换函数(将 number 转换为 Integer)
function toInteger(n: number): Integer {
  if (!isInteger(n)) {
    throw new Error(`数值 ${n} 不是整数`);
  }
  return n as Integer;
}

// 正确声明整数变量
const validNumber: number = 42;
if (isInteger(validNumber)) {
  let myInt: Integer = validNumber; // 在类型保护块内,直接赋值
}

// 或使用转换函数
let myInt: Integer = toInteger(42);

// 错误示例
let errorInt: Integer = 3.14; // 编译时报错:Type 'number' is not assignable to type 'Integer'
let anotherError = toInteger(3.14); // 运行时报错:数值 3.14 不是整数

取余本就是整数,除法可以用~~(133/16),

不明白你的意思,转成整数?

parseInt(133%16),或者Math.ceil(),Math.floor()

在HarmonyOS鸿蒙Next中,声明整数类型可以使用TypeScript或ArkTS语言。以下是具体示例:

  1. 使用TypeScript声明整数类型:

    let num: number = 42;
    

    这里number类型可以表示整数和浮点数。

  2. 使用ArkTS声明整数类型:

    let num: number = 42;
    

    ArkTS基于TypeScript,因此语法相同。

  3. 声明64位整数: 如果需要64位整数,可以使用BigInt类型:

    let bigNum: bigint = 9007199254740991n;
    
  4. 声明无符号整数: TypeScript和ArkTS没有内置的无符号整数类型,但可以通过类型断言或模块处理。

总结:在HarmonyOS鸿蒙Next中,使用number声明整数类型,64位整数用BigInt,无符号整数需特殊处理。

回到顶部