Итак, у меня есть несколько строк java переменной длины. Это может быть от 0 до 999999999, но последние два значения всегда должны быть десятичной частью. Я хочу преобразовать эти строки в значения float. Так я думал только о том:Java String "1603" to float 16.03
String strNum = "200";
strNum = strNum.substring(0, strNum.length()-2) + "." + strNum.substring(str.length()-2);
Float num = Float.parseFloat(strNum);
Но этот метод является довольно медленным, и я хотел бы также добавить какой-нибудь способ, чтобы посмотреть, если длина больше чем 2, чтобы избежать string index out of range
.
Мой вопрос: есть ли способ сделать это более чистым и быстрым способом? В противном случае я сделаю это, как я думал.
Благодаря
спасибо! Я знал, что делаю некоторые ненужные странные вещи – lpares12
Кстати, у меня есть два значения, преобразованные с помощью этого метода. Значения '17.55' и' 2.62', но при добавлении они приводят к '20.169998', почему он не возвращает' 20.17'? – lpares12
@ deuseux12 См. Https://en.wikipedia.org/wiki/Floating_point#Accuracy_problems. Задачу можно обойти, указав строку формата, чтобы заставить два десятичных знака: 'printf ("%. 2f ", num)' – Andreas