我想知道这两种方法有什么区别。我认为toStringAsFixed修剪了数字,但从文档中的示例来看,两者都对数字进行了四舍五入。
1. Double.toStringAsPrecision(int)
将 a 转换num为 adouble并返回String具有精确有效数字的表示形式。
参数 precision 必须是满足以下条件的整数:1 <= precision <= 21。
例子:
1.59.toStringAsPrecision(1); // 2
1.59.toStringAsPrecision(2); // 1.6
1.59.toStringAsPrecision(3); // 1.59
1.59.toStringAsPrecision(4); // 1.590
1e15.toStringAsPrecision(3);    // 1.00e+15
1234567.toStringAsPrecision(3); // 1.23e+6
1234567.toStringAsPrecision(9); // 1234567.00
12345678901234567890.toStringAsPrecision(20); // 12345678901234567168
12345678901234567890.toStringAsPrecision(14); // 1.2345678901235e+19
0.00000012345.toStringAsPrecision(15); // 1.23450000000000e-7
0.0000012345.toStringAsPrecision(15);  // 0.00000123450000000000
Run Code Online (Sandbox Code Playgroud)
2. Double.toStringAsFixed(int)
它还对数字进行四舍五入,但在小数位后,并根据int您提供的值返回结果。
double d = 1.59;
String fixed1 = d.toStringAsFixed(1); // 1.6
String fixed2 = d.toStringAsFixed(2); // 1.59
String fixed3 = d.toStringAsFixed(3); // 1.590
String fixed4 = d.toStringAsFixed(4); // 1.5900
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2517 次  |  
        
|   最近记录:  |