Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Singleton
179 / 74 / 8
Регистрация: 27.12.2012
Сообщений: 432

Странный результат при округлении

27.03.2017, 23:36. Показов 1214. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему
Java
1
2
3
edtResult.setText(String.valueOf(Math.round(result * 100.0) / 100.0));
edtResult.setText(String.format("%.2f", result));
edtResult.setText(Double.toString(Math.round(result * 100.0) / 100.0));
одинаково выводят два НУЛЕВЫХ знака после запятой
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2017, 23:36
Ответы с готовыми решениями:

Странный результат при минимизации функции
Коллеги, день добрый. Требуется минимизировать функцию \varphi (T) по Т. Использую алгоритм деления отрезка пополам, однако результат...

Table.sort дает странный результат при <=
crdsClear={{y=56,x=50,symbolName=3,}, {y=56,x=29,symbolName=2,}, {y=56,x=99,symbolName=2,}, {y=56,x=9,symbolName=5,}, ...

При введении больше 20 чисел программа выдает странный результат
#include &lt;iostream&gt; #include &lt;locale&gt; using namespace std; double t1, t2; int main() { setlocale(LC_ALL,...

10
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
28.03.2017, 11:05
потому что так устроена вселенная
если надо форматировать только для вывода на экран, проще использовать
Java
1
2
        DecimalFormat df = new DecimalFormat("#.##");
        edtResult.setText(df.format(result));
0
 Аватар для Singleton
179 / 74 / 8
Регистрация: 27.12.2012
Сообщений: 432
01.04.2017, 09:58  [ТС]
Импортировал и исправил:
Java
1
2
3
import java.text.DecimalFormat;
DecimalFormat df = new DecimalFormat("#.##");
edtResult.setText(df.format(result));
Теперь выводит только целые числа (как если использовать просто edtResult.setText(result))
0
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 674
01.04.2017, 11:00
Ну значит у вас результат - целые числа. Например если результат - 4, то так и запишет - 4, а если 4.25, то будет 4.25. Не значащие 0 не выводятся. Или точности не хватает. Попробуйте так, например, если число очень маленькое.
Java
1
DecimalFormat df = new DecimalFormat("#.############");
1
 Аватар для Singleton
179 / 74 / 8
Регистрация: 27.12.2012
Сообщений: 432
01.04.2017, 11:13  [ТС]
В том-то и фишка, что не могут быть все числа целые. result - среднее арифметическое чисел от 1 до 12
На всякий случай кот целиком:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
import java.text.DecimalFormat;
 
public class MainActivity extends AppCompatActivity{
 
    int sum = 0;
    int currCount = 0;
    int maxCount = 1;
    boolean setMaxCount = false;
    Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10, btn11, btn12, btnClear, btnC;
    EditText edtResult;
    TextView edtVariables;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        btn1 = (Button)findViewById(R.id.btn1);
        btn2 = (Button)findViewById(R.id.btn2);
        btn3 = (Button)findViewById(R.id.btn3);
        btn4 = (Button)findViewById(R.id.btn4);
        btn5 = (Button)findViewById(R.id.btn5);
        btn6 = (Button)findViewById(R.id.btn6);
        btn7 = (Button)findViewById(R.id.btn7);
        btn8 = (Button)findViewById(R.id.btn8);
        btn9 = (Button)findViewById(R.id.btn9);
        btn10 = (Button)findViewById(R.id.btn10);
        btn11 = (Button)findViewById(R.id.btn11);
        btn12 = (Button)findViewById(R.id.btn12);
        btnClear = (Button)findViewById(R.id.btnClear);
        btnC = (Button)findViewById(R.id.btnC);
        edtResult = (EditText)findViewById(R.id.edtResult);
        edtVariables = (TextView)findViewById(R.id.edtVariables) ;
 
        edtResult.setInputType(InputType.TYPE_NULL);
 
        Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/ds-digit.ttf");
        btn1.setTypeface(typeFace);
        btn2.setTypeface(typeFace);
        btn3.setTypeface(typeFace);
        btn4.setTypeface(typeFace);
        btn5.setTypeface(typeFace);
        btn6.setTypeface(typeFace);
        btn7.setTypeface(typeFace);
        btn8.setTypeface(typeFace);
        btn9.setTypeface(typeFace);
        btn10.setTypeface(typeFace);
        btn11.setTypeface(typeFace);
        btn12.setTypeface(typeFace);
        btnClear.setTypeface(typeFace);
        btnC.setTypeface(typeFace);
        edtResult.setTypeface(typeFace);
        edtVariables.setTypeface(typeFace);
 
        View.OnClickListener onClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                DecimalFormat df = new DecimalFormat("#.##");
                switch (view.getId()) {
                    case R.id.btn1:
                    case R.id.btn2:
                    case R.id.btn3:
                    case R.id.btn4:
                    case R.id.btn5:
                    case R.id.btn6:
                    case R.id.btn7:
                    case R.id.btn8:
                    case R.id.btn9:
                    case R.id.btn10:
                    case R.id.btn11:
                    case R.id.btn12:
                        int curVal = Integer.parseInt(((Button) view).getText().toString());
                        sum += curVal;
                        if (currCount == 0)
                        {
                            edtVariables.setText(String.valueOf(curVal));
                        }
                        else
                        {
                            edtVariables.setText(edtVariables.getText() + " + " + String.valueOf(curVal));
                        }
                        currCount++;
                        if (setMaxCount)
                        {
                            if (currCount == maxCount)
                            {
                                float result;
                                result = sum / maxCount;
                                edtResult.setText(df.format(result));
                                sum = 0;
                                currCount = 0;
                            }
                            if (currCount == 1)
                            {
                                edtResult.setText("0.0");
                            }
                        }
                        else
                        {
                            float result;
                            result = sum / currCount;
                            edtResult.setText(df.format(result));
                        }
                        break;
                    case R.id.btnClear:
                        sum = 0;
                        currCount = 0;
                        edtResult.setText("0");
                        edtVariables.setText("");
                        break;
                    case R.id.btnC:
 
                        break;
                }
            }
        };
 
        View.OnLongClickListener onLongClickListener = new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                if (view.getId() == R.id.btn1)
                {
                    setMaxCount = false;
                    Toast toast = Toast.makeText(getApplicationContext(), getString(R.string.msgCountManual), Toast.LENGTH_SHORT);
                    toast.show();
                }
                else
                {
                    maxCount = Integer.parseInt(((Button) view).getText().toString());
                    setMaxCount = true;
                    Toast toast = Toast.makeText(getApplicationContext(), getString(R.string.msgCount) + " " + maxCount, Toast.LENGTH_SHORT);
                    toast.show();
                }
                return true;
            }
        };
 
        btn1.setOnLongClickListener(onLongClickListener);
        btn2.setOnLongClickListener(onLongClickListener);
        btn3.setOnLongClickListener(onLongClickListener);
        btn4.setOnLongClickListener(onLongClickListener);
        btn5.setOnLongClickListener(onLongClickListener);
        btn6.setOnLongClickListener(onLongClickListener);
        btn7.setOnLongClickListener(onLongClickListener);
        btn8.setOnLongClickListener(onLongClickListener);
        btn9.setOnLongClickListener(onLongClickListener);
        btn10.setOnLongClickListener(onLongClickListener);
        btn11.setOnLongClickListener(onLongClickListener);
        btn12.setOnLongClickListener(onLongClickListener);
 
        btn1.setOnClickListener(onClickListener);
        btn2.setOnClickListener(onClickListener);
        btn3.setOnClickListener(onClickListener);
        btn4.setOnClickListener(onClickListener);
        btn5.setOnClickListener(onClickListener);
        btn6.setOnClickListener(onClickListener);
        btn7.setOnClickListener(onClickListener);
        btn8.setOnClickListener(onClickListener);
        btn9.setOnClickListener(onClickListener);
        btn10.setOnClickListener(onClickListener);
        btn11.setOnClickListener(onClickListener);
        btn12.setOnClickListener(onClickListener);
        btnClear.setOnClickListener(onClickListener);
        btnC.setOnClickListener(onClickListener);
 
    }
 
}
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
01.04.2017, 11:37
вопрос в чем?
0
 Аватар для Singleton
179 / 74 / 8
Регистрация: 27.12.2012
Сообщений: 432
01.04.2017, 11:55  [ТС]
Вопрос в том что ваш код не работает
Цитата Сообщение от Паблито Посмотреть сообщение
Java
1
2
DecimalFormat df = new DecimalFormat("#.##");
 edtResult.setText(df.format(result));
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
01.04.2017, 11:56
мой код работает
это твой код не работает и непонятно на каких числах и что должно быть в результате
0
 Аватар для Singleton
179 / 74 / 8
Регистрация: 27.12.2012
Сообщений: 432
01.04.2017, 11:59  [ТС]
Ок. Мой код не работает с использованием этой вставки. И если посмотреть выше, можно увидеть сверхсложный код активити, считающий среднее арифметическое из цифр, набраных кнопками. А если еще включить воображение то можно прочитать: "result - среднее арифметическое чисел от 1 до 12"
0
77 / 76 / 57
Регистрация: 07.08.2016
Сообщений: 173
01.04.2017, 12:23
Лучший ответ Сообщение было отмечено Singleton как решение

Решение

Singleton, вы делите друг на друга целые числа. Конечно, у вас в результате будет целое.
Сделайте переменную sum типа float или вычисляйте результат так:
Java
1
result = 1. * sum / maxCount;
1
 Аватар для Singleton
179 / 74 / 8
Регистрация: 27.12.2012
Сообщений: 432
01.04.2017, 12:34  [ТС]
Алилуйя) Спасибо. Никак не могу привыкнуть к специфике java и android в частности (имею опыт delphi программирования но он тут скорее мешает)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2017, 12:34
Помогаю со студенческими работами здесь

Выдает очень странный конечный результат при вычеслении простой математической формулы
#include &lt;stdio.h&gt; #include &lt;Windows.h&gt; main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); double x, y, z, formul; ...

Ошибка при округлении
вот пример хочу округлить как обычно большее к большему меньшее к меньшему что по середине не важно куда double thisStep =...

Ошибка при округлении чисел
Подскажите пожалуйста в чем ошибка,надо округлить число, выдает такую ошибку &quot;Too many actual parameters&quot;, хотя вроде все...

Погрешность при вычислении и округлении
Здравствуйте! Мне надо было написать простенькую функцию, которая переводит дробную часть числа из десятичной в q-ую систему счисления....

Глюки при округлении числа в Delphi5!
Глюки при округлении числа в Delphi5! Написал функцию округления : Вот пример при трассировке функции fRound(16.095,2) function...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru