注册 登录
编程论坛 C++教室

关于保留小数问题

哈哥 发布于 2012-07-20 18:52, 541 次点击
做了个计算器,结果是以消息提示框方式出现的,想根据用户输入想保留的小数位数进行动态保留,请问要怎么实现啊? Format(_T("%.3lf"),number)中的那个3不能换成一个整形变量吗?
6 回复
#2
pangding2012-07-20 21:22
不知道你那是什么函数。如果是 printf 的话,可以用 * 号来表示,之后需要再传一个参数。比如
    int a = 3;
    printf("%.*lf\n", a, 0.123456);

#3
哈哥2012-07-21 00:01
用format函数呢?我用的是CString类型
#4
pangding2012-07-21 01:40
不懂微软那套东西。上网查查呗,应该有手册才对吧。
#5
两条线2012-07-25 00:14
学习
#6
peach54602012-07-25 18:24
程序代码:
inline CString CDataBaseAssist::FormatString(const double fValue, int nPrecision, BOOL bElideZero/* = FALSE*/)
{
    CString sValue = _T("");
    sValue.Format("%.*f", nPrecision, fValue);

    if (bElideZero && nPrecision > 0)
    {
        sValue.TrimRight("0");
        sValue.TrimRight(".");
    }

    return sValue;
}
#7
lz10919149992012-07-25 21:07
TCHAR szFormat[7]; // %.xxlf\0
wsprintf(szFormat, TEXT("%%.%ulf"), a); // a:[1u-19u]
Format(szFormat,number);
1