Как изменить результат с типа данных Int на тип Float?

0

Я использую приложение калькулятора счета за электроэнергию в VS 2010, используя приложение MFC.

Программа работает, но я не могу распечатать результат в float.

Это мой код расчета:

void CLAB10Dlg::OnBnClickedTotal()
{


float num1; 
    float result;
    num1 = GetDlgItemInt(IDC_NUM1);

CButton* domesticButton = (CButton*)GetDlgItem(IDC_DOMESTIC);
CButton* industrialButton = (CButton*)GetDlgItem(IDC_INDUSTRIAL);
CButton* commercialButton = (CButton*)GetDlgItem(IDC_COMMERCIAL);

if(domesticButton -> GetCheck())
{
    result = 31.66 * num1;
SetDlgItemInt(IDC_RESULT,result);
}
else if(industrialButton -> GetCheck())
{
    result = 36.15 * num1;
SetDlgItemInt(IDC_RESULT,result);
}
else if(commercialButton -> GetCheck())
{
    result = 47.92 * num1;
SetDlgItemInt(IDC_RESULT, result);
}

}

например, my num1= 1.

result = 31.66 * num1

результат = 31

Где я должен изменить, чтобы распечатать result в float.

  • 0
    Вместо этого вы должны использовать SetDlgItemText ().
  • 0
    Похоже, вы должны использовать SetDlgItemText() и выполнять преобразования с float в строку и наоборот.
Показать ещё 2 комментария
Теги:
mfc
visual-studio-2010

2 ответа

2

SetDlgItemInt устанавливает текст управления в целое число без знака и, таким образом, преобразует ваше значение float в целое число без знака.

Вам лучше использовать SetDlgItemText для визуализации вашего значения float, например

CString text; 
text.Format(_T("%f", result); // This will preserve your float format
SetDlgItemText(IDC_RESULT, text);
  • 0
    я должен изменить свое объявление float num1 и результат float? Можете ли вы показать мне, как я изменяю свой код и с Commend (//)
  • 2
    @Newbie вы можете рассчитать свой результат, а затем использовать код, который я разместил
Показать ещё 5 комментариев
1
CString text; 
text.Format(_T("%f"), result); // This will preserve your float format
SetDlgItemText(IDC_RESULT, text);

Вы пропустили скобу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню