CString与float之间的转换

昨天遇到一个奇怪的问题,就是float->CString时,float值为0.701407,转换为CString类型就变为0.7014068了,代码如下:
znum=((float)aget[z]-average)/standardvariance;
strCol.Format("%f",znum);

原来是Format这个method在搞怪。
首先看Format的声明:
function Format(const Format: string; const Args: array of const):
格式指令具有以下的形式:
"%" [index ":"] ["-"] [width] ["." prec] type
它是以"%"开始,而以type结束,type表示一个具体的类型。中间是用来
格式化type类型的指令字符,是可选的。
其中type中f和g是有区别的
f 对应浮点数
g 这个只能对应浮点型,且它会将值中多余的数去掉
比如将上面代码中的strCol.Format("%f",znum)改为strCol.Format("%g",znum),则就不会输出0.7014068了,会准确输出0.701407

但是为什么type f输出会有差错呢?待续。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值