舍弃小数部分(取整)
首先我们来看如何只保留整数位,这里有很多方法可以实现:
double price = 100 / 3;
//舍弃当前变量的小数部分,结果为 33。返回值为 int 类型。
price.truncate();
//舍弃当前变量的小数部分,浮点数形式表示,结果为 33.0。返回值为 double。
price.truncateToDouble();
//舍弃当前变量的小数部分,结果为 33。返回值为 int 类型。
price.toInt();
//小数部分向上进位,结果为 34。返回值为 int 类型。
price.ceil();
//小数部分向上进位,结果为 34.0。返回值为 double。
price.ceilToDouble();
//当前变量四舍五入后取整,结果为 33。返回值为 int 类型。
price.round();
//当前变量四舍五入后取整,结果为 33.0。返回值为 double 类型。
price.roundToDouble();
根据自己的需求,是否需要四舍五入等,选择一个合适的方法即可。
保留小数点后 n 位
如果我们想要控制浮点数的精度,想要保留小数点后几位数字,怎么实现?
最简单的是使用 toStringAsFixed() 方法:
double price = 100 / 3;
//保留小数点后2位数,并返回字符串:33.33。
price.toStringAsFixed(2);
//保留小数点后5位数,并返回一个字符串 33.33333。
price.toStringAsFixed(5);
注意,toStringAsFixed() 方法会进行四舍五入。
或者也可以使用第三方类库,或者自己写一个函数实现都可以。当然,大多数情况下 toStringAsFixed() 方法都可以满足我们的需求了。