Как «перевернуть» число с плавающей запятой, в отношении к setAlpha();?
Как сделать так называемый «реверс» для числа с плавающей запятой? Например есть число с плавающей запятой. Его диапазон от 0.0f до 1.0f . По дефолту число равно 0.0f . Когда происходит действие, оно увеличивается. 0.10f 0.23f 0.37f 0.40f и так до 1.0f . То есть 0 стремится к 1 . Есть метод для View view.setAlpha(float); , позволяющий установить прозрачность для View элемента. Если 0 — значит прозрачный, если 1 — значит видимый. И когда View элемент снизу экрана начать тащить вверх экрана, нужно чтобы он становился прозрачным ( 0.f ). А он наоборот становится видимым, из за того что туда 1.0f вместо 0.f приходит.
if (slideOffset > 0.0f && slideOffset < 1.0f) < view.setAlpha(slideOffset); >else
Отслеживать
задан 17 июн 2019 в 18:04
691 6 6 серебряных знаков 24 24 бронзовых знака
Наверное у вас slideOffset это int, вот он и округляется до 1
17 июн 2019 в 18:06
slideOffset это точно float. Всё работает как и положено. Нужно только сделать наоборот чтобы не от 0 к 1 стремилось значение, а от 1 к 0. Иначе я делаю элемент view видимым , вместо прозрачности.
17 июн 2019 в 18:08
@ЮрийСПб, это в библиотеке ‘com.sothree.slidinguppanel:library:3.4.0’ в слушателе приходит значение onPanelSlide(View panel, float slideOffset)
Переворот цифр числа
Задача: Каждое из заданных натуральных чисел заменить числом, получающимся при записи его десятичных цифр в обратном порядке. Решение: Эту задачу можно решить так: преобразовать число в массив цифр, перевернуть массив, преобразовать новый массив в число. Однако можно решить проще:
1. Дано число (Х);
2. новое число (Y) = 0;
3. Пока (X > 0) делай:
3.1. Y = Y*10 + крайняя_цифра(X);
3.2. X = X / 10;
4. Верни Y. Как это работает посмотри на примере, пусть X дано 456981 , изначально Y = 0 .
| номер итерации цикла | y | x |
| 1 | Y = 0*10 + 1 = 1 | X = 456981/10 = 45698 |
| 2 | Y = 1*10 + 8 = 18 | X = 45698/10 = 4569 |
| 3 | Y = 18*10 + 9 = 189 | X = 4569/10 = 456 |
| 4 | Y = 189*10 + 6 = 1896 | X = 456/10 = 45 |
| 5 | Y = 1896*10 + 5 = 18965 | X = 45/10 = 4 |
| 6 | Y = 18965*10 + 4 = 189654 | X = 4/10 = 0 |
Запишем это же на С++:
#include #include int reverse(int n) < int buffer = 0; int copy_n = n; while (n != 0) < int digit = n%10; buffer = buffer*10 + digit; n = n/10; >if (copy_n < 0) buffer = -1 * buffer; return buffer; >void read_array(int n, int** values) < for (int i = 0; i < n; ++i) < printf("values[%d] = ", i); scanf("%d", &((*values)[i])); >> void print_array(int n, int* values) < for (int i = 0; i < n; ++i) < printf("values[%d] = %d\n", i, values[i]); >> int main() < int n; int *values; printf("n: "); scanf("%d", &n); values = malloc(sizeof(int) * n); read_array(n, &values); for (int i = 0; i < n; ++i) < values[i] = reverse(values[i]); >printf("\n"); print_array(n, values); return 0; >
В этой программе формируется массив из чисел, заполняется с клавиатуры, а затем для каждого числа из массива применяется описанная функция.
Просмотр 0 веток ответов
Как инвертировать число в java
Для инвертирования числа в Java необходимо в цикле делить число на 10, пока оно не станет равным 0. А в теле цикла находить остаток от деления на 10 и прибавлять к результату от предыдущего шага, увеличенного в 10 раз.
// Число для инвертирования int number = 4579; // Здесь будет храниться результат и промежуточные значения int result = 0; // Пока число не станет равным нулю while (number != 0) // "Отщипываем" по числу с конца и прибавляем к предыдущему результату, увеличенному в 10 раз result = result * 10 + number % 10; // Уменьшаем число в 10 раз number = number / 10; > System.out.println(result); // => 9754 // Последовательность значений в цикле: // result = 0 * 10 + 9; // number = 457; // result = 9 * 10 + 7; // number = 45; // и т.д.
18 ноября 2022
Можно перевести в строку и сделать reverse строки :
String str = String.valueOf(number); StringBuilder builder = new StringBuilder(str); builder.reverse(); int result = Integer.parseInt(builder.toString());
Перевернуть введенную строку задом наперед. Java
В Java можно использовать класс StringBuilder и его метод reverse() для переворота строки задом наперед:
java
public class Main public static void main(String[] args) String input = «Hello, world!»;
StringBuilder reversed = new StringBuilder(input).reverse();
System.out.println(reversed);
>
>
В этом примере мы создаем строку input, затем создаем объект StringBuilder на ее основе и вызываем метод reverse(), который меняет порядок символов на противоположный. Результат записывается в новый объект StringBuilder, который затем преобразуется обратно в строку и выводится на консоль.
Переписать другими словами
Написать сочинение по запросу
Или попробуйте другие режимы нейросети.
Перевернуть строку задом наперед может показаться простой задачей, но не всегда. Некоторым людям это может представлять трудность, особенно если строка содержит множество символов. Но не переживайте, нейросеть онлайн готова помочь вам с этим!
Для того чтобы перевернуть вводимую строку задом наперед, просто введите ее в нашу нейросеть пишет текст и получите результат моментально. Наша нейросеть использует передовые технологии и алгоритмы для решения этой задачи, без необходимости написания дополнительного кода. Результат всегда будет точным и быстрым. Не тратьте свое время вручную переворачивая строки, доверьтесь нашей нейросети онлайн и воспользуйтесь ее удобством сегодня!