Как отобразить десятичное значение для свойства double с целым числом - PullRequest
0 голосов
/ 13 декабря 2018

Возникают проблемы, когда я присваиваю целое значение, например

double myDouble = 1.0;

... переменной.Когда я показываю это в текстовом блоке в telerik, он показывает «1» вместо «1.0».

Другие значения с десятичными знаками работают как положено.

РЕДАКТИРОВАТЬ Я использую wpf с telerik Datagrid.Но прежде чем поместить значение в таблицу данных, я преобразую его в строку.Поэтому, прежде чем это произойдет, я присваиваю значение следующим образом.

Это мой класс:

public class MyClass{
  public int Id {get;set;}
  public double MyDoubleVal {get;set;}
}

Вот как я присваиваю значение

var class = new MyClass { Id = 1, MyDoubleVal = 1.0 };

Когда я отлаживаюи попытался проверить значение, он показывает как «1», а не «1.0».Теперь, когда я помещаю значение для отображения в DataGrid, я могу вручную добавить десятичное число, но я бы не стал этого делать, если есть функция форматирования, которая может позаботиться об этом за меня.

До сих пор я пробовал следующее

String.Format(""{0:00.0}", myClassInstance.MyDouble);
myClassInstance.MyDouble.ToString("0.0")

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

У вас есть много вариантов.Вот некоторые из них:

string.Format ():

double a = 18.54657;//some number
Console.WriteLine(string.Format("{0:F2}", a);
// where F2 tells the function to format as a float with 2 decimals... for your usecase you can use F1

double.ToString ():

double a = 18.54657;//some number
Console.WriteLine(a.ToString("#.#");
//where the # after the period tells the function to include 1 number after the period(or 1 decimal point). You can add more # for more decimal points to show. As a side not you can do a.ToString("#,###.#") to add commas to numbers
0 голосов
/ 13 декабря 2018

Попробуйте отформатировать двойное значение в XAML

<TextBlock Text="{Binding MyDoubleVal, StringFormat=n1}" />

, если есть только свойство Content, тогда используйте ContentStringFormat

0 голосов
/ 13 декабря 2018

Вы можете использовать формат F:

double a = 1.0;
Console.WriteLine(a.ToString("F"));

Будет вывод 1.00

...