2013-12-02 1 views
0

Здравствуйте, у меня есть свойство PropertiesComboBox, которое я использую для фильтрации, и я заполняю его, используя хранимую процедуру. Однако, когда значения возвращаются в PropertyComboBox, они возвращаются с дополнительными 0. Она возвращает 3,0000, когда я только хочу, чтобы вернуть 3,00Сохраненная процедура, возвращающая неверную десятичную точку

Вот мой код для хранимой процедуры:

CREATE PROC GetPromoValueColumn @Platform varchar(30) 
AS 
BEGIN 
    SELECT  p.Value 
    FROM  PromotionalCode p 
    JOIN  Application a 
    ON   a.ID = p.AppID 
    GROUP BY p.Value 
END 

Любая идея, почему это происходит?

спасибо.

+0

Это не проблема. технически оба одинаково используют 'yourDecimal.ToString (" 0.00 ");' для его форматирования. –

ответ

1

p.Value имеет точность, которая позволила бы использовать значения с 4-мя местами после десятичной точки.

Математически, 3, 3,0, 3,00, 3,000, 3,0000 и 3,00000 имеют одинаковое значение: 3.

Это полностью зависит от вас, чтобы отформатировать его таким образом, что имеет смысл для вашего приложения.

+0

Хорошо, как бы я отформатировал его так, чтобы он округлял значения до 2 десятичных точек? Спасибо – jeffry

+0

Вы можете использовать [пользовательскую строку числового формата] (http://msdn.microsoft.com/en-us/library/0c899ak8 (v = vs.110) .aspx), чтобы отформатировать ваше значение до того, что вы хотите , – nvoigt

+0

Вы можете использовать это в C#, например Convert.Todouble (значение) .Tostring ("# 0.00") –

0

Вероятно, вы определили ваше поле PromotionalCode.p в виде десятичных (X, 4)

X rapresent общее количество цифр вашего номера, 4 это число десятичных цифр. Если вы попытаетесь переопределить столбец таблицы как десятичный (X, 2), вы увидите только 2 десятичных знака.

эс:

ALTER TABLE PromotionalCode MODIFY COLUMN p DECIMAL(10,2) DEFAULT NULL; 
+0

Я не хочу изменять таблицу, есть ли способ изменить хранимую процедуру для того же результата? – jeffry

+0

В mySQL SELECT CAST (p.Value AS DECIMAL (10,2)) – kiks73

0
declare @id decimal(16,3) 

вам необходимо установить десятичные значения в соответствии с вашим требованием

 Смежные вопросы

  • Нет связанных вопросов^_^