HarmonyOS 鸿蒙Next 如何将一个number的数字不四舍五入保留2位小数

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何将一个number的数字不四舍五入保留2位小数

如何将一个number的数字不四舍五入保留2位小数

2 回复

可以参考截取string的方式来做:

[@Entry](/user/Entry)

[@Component](/user/Component) struct Index {

 aboutToAppear(): void {

   console.log(this.toOneDecimalPlace(1.33333))

 }

 build() {

   Column(){

     Text(this.toOneDecimalPlace(1.33333))

     Text(this.toOneDecimalPlace(1.33777))

     Text(this.toOneDecimalPlace(33777))

   }

 }

 toOneDecimalPlace(num: number): string {

   const arr = num.toString().split('.')

   if(arr.length > 1){

     return arr[0] + '.' + arr[1].substring(0,2);

   } else {

     return arr[0] + '.00';

   }

 }

}

在HarmonyOS鸿蒙Next系统中,若要将一个数字不四舍五入地保留两位小数,可以通过字符串格式化或数学运算来实现。以下是一种使用字符串格式化的方法:

  1. 使用字符串格式化: 你可以使用DecimalFormat类(在Java中常见,HarmonyOS支持Java API)来格式化数字。不过,DecimalFormat默认会进行四舍五入,所以需要一些技巧来避免它。一个简单的方法是先将数字转换为字符串,然后手动截取到小数点后两位。

    示例代码(Java风格,适用于支持Java的HarmonyOS开发):

    double number = 123.4567;
    String str = String.valueOf(number);
    if (str.indexOf(".") > -1) {
        str = str.substring(0, str.indexOf(".") + 3); // 保留小数点后两位
    } else {
        str += ".00"; // 如果没有小数部分,则添加.00
    }
    System.out.println(str); // 输出: 123.45
    

    注意:此方法将数字转换为字符串处理,适用于不需要进一步进行数学运算的场景。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部