首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java中有没有截断双精度值的函数?

java中有没有截断双精度值的函数?
EN

Stack Overflow用户
提问于 2009-12-30 04:35:39
回答 10查看 58.2K关注 0票数 24

有没有一个Java库函数可以用来将一个数字截断到任意数量的小数位?例如。

SomeLibrary.truncate(1.575, 2) = 1.57

谢谢

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-12-30 04:38:05

尝试BigDecimal的setScale,如下所示:

public static double round(double d, int decimalPlace) {
    BigDecimal bd = new BigDecimal(d);
    bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
    return bd.doubleValue();
}
票数 30
EN

Stack Overflow用户

发布于 2009-12-30 05:24:32

令人难以置信的是,现在还没有人提出这一点,Java API已经有很多年的DecimalFormat就是为了这个目的。

票数 15
EN

Stack Overflow用户

发布于 2009-12-30 04:37:55

对于大多数数字,除非使用有保证精度的十进制类,如BigDecimal,否则无法获得xxx.yyyy的精确表示。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1976809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档