我想截断 double 。
例如
double d=3.123456789087654;
如果我想截断到小数点后第10位 结果应该是
result: 3.1234567890
我不需要对结果进行四舍五入
我尝试了自己的功能
static double truncateDouble(double number, int numDigits) {
double result = number;
String arg = "" + number;
int idx = arg.indexOf('.');
if (idx!=-1) {
if (arg.length() > idx+numDigits) {
arg = arg.substring(0,idx+numDigits+1);
result = Double.parseDouble(arg);
}
}
return result ;
}
但没有得到我想要的适当结果.. 有人可以帮我解决我的问题吗?
java有支持截断不四舍五入的函数吗?
最佳答案
一般来说,你不能,至少不能使用double
。原因是许多数字根本无法准确表示,即使它们有少量的小数位。
以0.1为例。最接近的 double
是 0.1000000000000000055511151...并且任何截断都不会给你精确的 0.1。
关于java - 如何截断 double 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15201713/