VC编程如何设置数据小数点后位数

2025-03-03 18:51:13
推荐回答(3个)
回答1:

原始数据几位小数,结果也是几位。
这是对的。atof无法提升精度。

至于楼主所希望的3位变成6位,其实数据在内存中的精度足够。
只是你输出数据的时候没有加控制符而已。
用下面例程可以输出小数点后6位的浮点数。
printf("%.6f",m_cloudPts[modalNum].x);

double的取值范围,如果小数点前的有效数字不多的话,应当可以满足小数点后9位的要求。
2.2250738585072014 E – 308
1.7976931348623158 E + 308

回答2:

如果m_cloudPts是float的话,自动转换成8个有效数字,小数点的位数好像没有办法控制的
比如:输入的是123.45 那么就会变成:123.45000
输入的是1.2345 那么就会变成:1.2345001

显示的时候,可以用"%.06f"做格式化,这时候是可以控制小数点的位数的

补充:
atof的返回值类型是double,而不是float,只要你左边的值是double就不会被截断

double atof(const char *nptr);已经明确说是double类型了,浮点数包含单精度float和双精度double

回答3:

这个是浮点数,int,float,double float,位数是固定的,取决于采用的字节长度。你只能在它的基础上取舍,用与的方式只要想要的位数。