Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
1

вычислени длины окружн. тип double

12.10.2010, 14:06. Показов 976. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема заключается в том,
что когда выбираю L - длину окружности
и ввожу число типа инт, например 24, то все гуд!

а когда ввожу 23.2323 то в консоли ругается на строку №41

C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
 
        static void Main(string[] args)
        {
 
            Console.WriteLine("Выберите элемент окружности (r, d, l или s): ");
            char a1 = char.Parse(Console.ReadLine());
            double rr, dd, ll, ss; // в этих переменных результат!
            double pi = 3.14;
 
            switch (a1)
            {
                case 'r':
                    Console.WriteLine("Вы выбрали радиус!\n Введите его значение:");
                    rr = double.Parse(Console.ReadLine());
 
                    dd = 2 * rr;
                    ll = 2 * pi * rr;
                    ss = 2 * pi * rr * rr;
                    Console.WriteLine("Результат при r = " +rr+".\n d = " +dd+ "\n l = " +ll+ "\n s = " +ss+ " ");
                    break;
                case 'd':
                    Console.WriteLine("Вы выбрали диаметр!\n Введите его значение:");
                    dd = double.Parse(Console.ReadLine());
 
                    rr = dd / 2;
                    ll = 2 * pi * rr;
                    ss = 2 * pi * rr * rr;
                    Console.WriteLine("Результат при d = " +dd+".\n r = " +rr+ "\n l = " +ll+ "\n s = " +ss+ " ");
                    break;
                case 'l':
                    Console.WriteLine("Вы выбрали длину окружности!\n Введите ее значение:");
                    ll = double.Parse(Console.ReadLine());
 
                    rr = ll / (2 * pi);
                    dd = 2 * rr;
                    ss = 2 * pi * rr * rr;
                    Console.WriteLine("Результат при l = " +ll+".\n r = " +rr+ "\n d = " +dd+ "\n s = " +ss+ " ");
                    break;
                case 's':
                    Console.WriteLine("Хорошо");
                    break;
                default:
                    Console.WriteLine("Ошибка");
                    break;
            }        
 
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2010, 14:06
Ответы с готовыми решениями:

Цикл for и тип double. Переменная округляется, хотя объявлена как Double
using System; class zada4ka_5_32 { static void Main() { int n; ...

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include<iostream> #include<cmath> #include<cstdlib> using namespace std;...

Не удается неявно преобразовать тип double в тип int
class Program { static void Main(string args) { double k = 0; ...

Не удается неявно преобразовать тип double в тип bool
static double func1 (double x) { double y = x + 1; return y; ...

7
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
12.10.2010, 14:09 2
при вводе дробного числа используйте запятую.
0
8 / 8 / 1
Регистрация: 20.07.2010
Сообщений: 22
12.10.2010, 14:16 3
Еще можно делать так:
C#
1
2
3
String sDouble=Console.ReadLine();
sDouble=sDouble.Replace(".",System.Globalization.NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator);
sDouble=sDouble.Replace(",", System.Globalization.NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator);
И спокойно использовать и точку и запятую независимо от настроек языковых параметров.
0
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
12.10.2010, 14:20  [ТС] 4
ogoun, конечно спасибо!
но не мог бы ты мне тыкнуть пальцем , куда мне это всунуть!

первая прога на C#, ни синтаксиса, ничего не знаю, даже книги норм нету))
0
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
12.10.2010, 14:27 5
ZaVyLoN, еще вариант:
C#
1
2
3
4
5
6
string a = Console.ReadLine();
            if (a.Contains("."))
            {
                a = a.Replace(".", ",");
            }
            double d = double.Parse(a);
Добавлено через 3 минуты
А лучше напиши отдельный метод и вызывай, где необходимо:
C#
1
2
3
4
5
6
7
8
static double Chislo(string text) 
        {
            if (text.Contains("."))
            {
                text = text.Replace(".", ",");
            }
            return double.Parse(text);
        }
Вызов:
C#
1
2
3
4
5
6
7
8
9
case 'l':
                    Console.WriteLine("Вы выбрали длину окружности!\n Введите ее значение:");
                    ll = Chislo(Console.ReadLine());
 
                    rr = ll / (2 * pi);
                    dd = 2 * rr;
                    ss = 2 * pi * rr * rr;
                    Console.WriteLine("Результат при l = " +ll+".\n r = " +rr+ "\n d = " +dd+ "\n s = " +ss+ " ");
                    break;
0
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
12.10.2010, 14:34  [ТС] 6
kirill29, спасибо!!

благо что есть хорошие люди,
быстро!!


может посоветуюте какую книгу прикупить!!?(не совсем идиотскую, ну всмысле не для чайника)
изучил с++,
захотелось еще и с# изучить...
0
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
12.10.2010, 14:36 7
Цитата Сообщение от ZaVyLoN Посмотреть сообщение
может посоветуюте какую книгу прикупить!!?(не совсем идиотскую, ну всмысле не для чайника)
Посмотри тему: https://www.cyberforum.ru/csha... 34187.html
0
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
12.10.2010, 14:48  [ТС] 8
спс всем!
тему можно закрывать!
0
12.10.2010, 14:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2010, 14:48
Помогаю со студенческими работами здесь

Как сконвертировать свой тип в тип double?
Можно ли конвертировать свой тип в тип doble? Если да, то каким способом?

Не могу преобразовать тип char в тип double
Вся загвоздка в str1 и str2; #include "stdafx.h" #include "conio.h" #include"stdlib.h"...

Кортежи: Не удается неявно преобразовать тип "System.Tuple<double, double>" в "string"
Помогите.Как устранить ошибку? Ошибка CS0029 Не удается неявно преобразовать тип...

Тип double
Приветствую форумчане! подскажите, почему такая конструкция не работает? var value: double;...

Тип double
Добрый день. import java.util.Scanner; public class Pr { public static void main(String...

Тип double
Доброго времени суток! Подскажите: double var = (100+94)/100; Почему var становится 1.0, а...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru