求教关于CString和double之间互相转换的问题
最近在用MFC做一个计算器程序,类似XP的简易计算器
double型数据进行加减乘除运算后,会有小数的问题
问题1
1/3 = 0.333333循环
通过string.format("%f",dNum) 得出结果是 0.333333
通过string.format("%g",dNum) 得出结果也是 0.333333
有没有控制循环小数位数的方法?
问题2
4除2
string.format("%f",dNum)后得到2.000000(因为只显示6位小数,一直除2下去的话会显示0.000000)
string.format("%g",dNum)后得到2(看来貌似只能用这个)
用%g,当数值出现过大或过小时 会用e的形式表示值,怎么控制e前面的小数位个数?(例 1.12346e+001)
问题3
如果用%g,那么会出现如下求倒数(1/x )的问题
6的倒数是 0.166667
拿上面的值直接再求倒会得到5.999999,实际应该是6才对。 double型数值连做两次倒数怎么破?