Округление чисел - C# (181712)
Формулировка задачи:
Всем привет, стоит такая задача..
У нас есть 3 числа, допустим
345 78 25
нам нужно разделить первое на второе и округлить до точности третьего, т.е
(345/25) и округляем до 25 знаков после запятой
ответ должен получиться: 4.4230769230769230769230769
Какие есть варианты)?
Решение задачи: «Округление чисел»
textual
Листинг программы
- // = x/y округление до n знаков, дробная часть выводтся групами по g цифр с разделителями "пробел"
- // если g <=0 то разделителей нет
- static public string delenieDoN(int x, int y, int n, int g = -1) {
- string rez;
- int r;
- int o;
- int py;
- o = Math.Abs(x % y);
- py = Math.Abs(y);
- //целая часть
- r = x / y;
- int[] a = new int[n];
- //часть после точки
- if (n > 0) {
- for (int i = 0; i < n ; i++) {
- a[i] = o * 10 / py;
- o = o * 10 % py;
- }
- }
- //округление
- if ((o * 10 / py) > 4) {
- int j = n - 1;
- a[j]++;
- while ((j>0)&&(a[j]>9)){
- a[j] = 0;
- j--;
- a[j]++;
- }
- }
- if (a[0]>9){
- a[0]=0;
- if (r>0) {
- r++;
- }
- else{
- r--;
- }
- }
- //строка
- rez = "" + r;
- if (n > 0) {
- rez += ".";
- for (int i = 0; i < n; i++) {
- // вставка разделителя групп
- if ((g > 0) && (i > 0) && (i % g == 0)) {
- rez += " ";
- }
- rez += a[i];
- }
- }
- return rez;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д