栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

以给定的精度快速将字符串转换为字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

以给定的精度快速将字符串转换为字符串

免责声明: 我只建议您在绝对需要速度的情况下使用此功能。

在我的机器上,以下代码可以在约130毫秒内完成100万次转换:

 private static final int POW10[] = {1, 10, 100, 1000, 10000, 100000, 1000000}; public static String format(double val, int precision) {     StringBuilder sb = new StringBuilder();     if (val < 0) {         sb.append('-');         val = -val;     }     int exp = POW10[precision];     long lval = (long)(val * exp + 0.5);     sb.append(lval / exp).append('.');     long fval = lval % exp;     for (int p = precision - 1; p > 0 && fval < POW10[p]; p--) {         sb.append('0');     }     sb.append(fval);     return sb.toString(); }

所提供的代码有几个缺点:它只能处理有限范围的

doubles
,而不能处理NaN。前者可以通过扩展
POW10
数组来解决(但只能部分解决)。后者可以在代码中显式处理。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386835.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号