Как я могу показать десятичную в текстовом поле? - PullRequest
1 голос
/ 03 января 2011

Я создаю простое консольное приложение, которое показывает значение PI с точностью до определенного числа десятичных знаков. На данный момент я написал следующий код:

namespace PIApplication
{
  static void Main()
  {
    decimal Pi = Math.PI;
    Console.Writeline("Pi is {0}.", PI);
  }
}

Причина, по которой я использовал {0}, заключается в том, что я знаю, что этот метод работает, когда речь идет о логических значениях, но я могу только предположить, что 0 следует заменить на что-то другое. Может кто-нибудь объяснить, как это будет работать в моем случае?

Кроме того, я получаю сообщение об ошибке, что система не может преобразовать тип double в десятичный. Я предполагаю, что это относится к значению, которое определяется как PI. Что мне нужно сделать, чтобы преобразовать его из одного типа в другой? Мне даже нужно?

Заранее спасибо за помощь.

Ответы [ 3 ]

2 голосов
/ 03 января 2011

Так определяется постоянная PI в System.Math:

public const double PI = 3.14159 

Попробуйте:

    static void Main(string[] args)
    {
        double Pi = Math.PI; 
        Console.WriteLine("Pi is {0}.", Pi); 
    }

Десятичное число : по сравнению с типами с плавающей запятой десятичный тип имеет большую точность и меньший диапазон, что делает его пригодным для финансовых и денежных расчетов.

1 голос
/ 04 сентября 2014

Не нужно хранить PI, если вы не хотите хранить его с заданной точностью.

int givenPrecision = 10;
Console.WriteLine("Pi is {0}.", Math.PI.ToString("0." + new String('#', givenPrecision)));

Это даст 3.1415926536.

0 голосов
/ 03 января 2011

Явно конвертировать ??

 namespace PIApplication{
  static void Main()
  {
    decimal Pi = (decimal)Math.PI;
    Console.Writeline("Pi is {0}.", Pi);
  }
}

выделенный текст

...