以double类型小数0.274002149218631为例

解决:

方法一:精确到小数点后一位

1)首先为控件Edit添加一个CString类型的变量

[MFC] Edit控件上的数据(可控固定位数)显示_mfc


2)添加代码(将double类型小数转换为CString类型显示):

CString s;
	double max = 0.274002149218631;
	s.Format("%.lg", max); //显示一位小数
	//s.Format(_T("%.2f"), max);//显示两位小数,"%.3f"—显示三位小数(因为采用UNICODE编码, 添加   _T ,".2f" 控制小数点位数)
	max_edit =s;
	UpdateData(FALSE);

效果:

[MFC] Edit控件上的数据(可控固定位数)显示_c++_02


方法二:原来多少位的小数,就显示多少位的:

1)为编辑框Edit添加一个double类型的变量min_edit

2)添加代码(直接显示double类型的小数):

double max = 0.274002149218631;
	min_edit = max;
    UpdateData(FALSE);//把控件关联的变量值“刷到”控件上显示

效果:

[MFC] Edit控件上的数据(可控固定位数)显示_microsoft_03

方法三:任意控制小数点后的位数:
1)为编辑框Edit添加一个double类型的变量min_edit
2)添加代码:

double max = 0.274002149218631;
	min_edit = max;
	min_edit = floor(min_edit * 1000.000f + 0.5) / 1000.000f;
    UpdateData(FALSE);//把控件关联的变量值“刷到”控件上显示

上面是精确到小数点后三位,如果精确到小数点后两位,改成100.000f。

效果:

[MFC] Edit控件上的数据(可控固定位数)显示_double类型_04

注: UpdateData(FALSE),作用是将数据呈现出来。