Я хочу усечь двойной.Как усечь двойное значение?
например.
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 такую функцию, которая поддерживает усечение, а не округление?
Просто из любопытства, почему вы хотите потерять точность? – Supericy
Я на стороне этого мало смысла. У вас есть прецедент для округления/усечения в точке, отличной от выведения числа? Кроме того, хотя у меня есть подозрительный NPE, правильно, что «подходящий» результат - это число, которое невозможно представить точно, можете ли вы сказать, какова фактическая проблема с вашим кодом? То есть какой неправильный результат для ввода и чего вы ожидали? – millimoose
@millimoose: моя проблема проста..Я хочу, чтобы двойник после определенного нет после десятичной точки. – kTiwari