Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> значение полят типа float, как в коде присвоить типу float 
:(
    Опции темы
Чердак
  Дата 30.10.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 8.12.2004

Репутация: нет
Всего: нет



Доброе время суток.
У меня в таблице базы есть поле типа float. в приложение объявляю переменную:
Код

float prise;


Как мне этой переменной присвоить вот это: 
Код

ds.Tables[0].Rows[e.RowIndex][4]  // тип данного поля SqlFloat


?
--------------------
PM MAIL   Вверх
Idsa
Дата 31.10.2008, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(Чердак @  30.10.2008,  20:15 Найти цитируемый пост)
тип данного поля SqlFloat

В смысле SqlSingle?
Судя по MSDN, для SqlSingle определено implicit преобразование к типу Single (=float), поэтому, думаю, должно сработать вот так:
Код

float price = (SqlSingle)ds.Tables[0].Rows[e.RowIndex][4];



--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Чердак
Дата 31.10.2008, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 8.12.2004

Репутация: нет
Всего: нет



Выдает ошибки, вот что пишу:
 
Код

                int Margin;
                string strWhere;
                strWhere = " WHERE ID = "+ds.Tables[0].Rows[e.RowIndex][3]
                    + " AND PriceType = '" + dataGridView1.Rows[e.RowIndex].Cells[3].Value+"' ";
                Margin = Convert.ToInt32(ws.GetValuesField("ProductPrice", strWhere, "Margin")[0]);
                float price,pr;
                pr = (SqlSingle)(ds.Tables[0].Rows[e.RowIndex][4]);
                price = Math.Round((Margin * 0.01) * pr * ConstHolder.Kurs, 2);
                dataGridView1.Rows[e.RowIndex].Cells[4].Value = Convert.ToString(price);



Вот ошибки:
pr = (SqlSingle)(ds.Tables[0].Rows[e.RowIndex][4]); - 
Error    1    Cannot implicitly convert type 'System.Data.SqlTypes.SqlSingle' to 'float'. An explicit conversion exists (are you missing a cast?)  

price = Math.Round((Margin * 0.01) * pr * ConstHolder.Kurs, 2); - 
Error    2    Cannot implicitly convert type 'double' to 'float'. An explicit conversion exists (are you missing a cast?)   


работает вот как:
Код

                int Margin;
                string strWhere;
                strWhere = " WHERE ID = "+ds.Tables[0].Rows[e.RowIndex][3]
                    + " AND PriceType = '" + dataGridView1.Rows[e.RowIndex].Cells[3].Value+"' ";
                Margin = Convert.ToInt32(ws.GetValuesField("ProductPrice", strWhere, "Margin")[0]);
                double price,pr;
                pr = Convert.ToDouble((ds.Tables[0].Rows[e.RowIndex][4].ToString()));
                price = Math.Round((Margin * 0.01) * pr * ConstHolder.Kurs, 2);
                dataGridView1.Rows[e.RowIndex].Cells[4].Value = Convert.ToString(price);


Но все-таки хочется использовать тип float.

Это сообщение отредактировал(а) Чердак - 31.10.2008, 12:31
--------------------
PM MAIL   Вверх
Partizan
Дата 31.10.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67



pr = (float)(ds.Tables[0].Rows[e.RowIndex][4]);


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Idsa
Дата 31.10.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Мой косяк. Смотрю в книгу - вижу... Implicit - из float в SqlSingle. А из SqlSingle в float - explicit. Вот данные из Рефлектора:
Код

    public static implicit operator SqlSingle(float x);
    public static explicit operator float(SqlSingle x);


Цитата(Чердак @  31.10.2008,  16:29 Найти цитируемый пост)
Но все-таки хочется использовать тип float.

Сделайте explicit приведение к float:
Код

pr = (float)ds.Tables[0].Rows[e.RowIndex][4];


Это сообщение отредактировал(а) Idsa - 31.10.2008, 12:58


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.