关于strtofloat的转换问题 strtofloat函数delphi 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、single是单精度浮点数类型,浮点数取值范围:负数取值范围为 -3.4028235E+38 到 -1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。它的有效位是7位。2、sumje定义的是单精度浮点数,它保存的数据有效位是7位,strtofloat(formatfloat('0.00',9.55))的值是:9.55,但是,代码sumje:= strtofloat(formatfloat('0.00',9.55));执行的结果是:sumje:=9.550000;3、sumje的有效位7位的数是:9.550000;4、实际是sumje保存的值是9.55000019073486,这与strtofloat(formatfloat('0.00',9.55))不是矛盾的,因为它的有效值是:9.550000。通过,上述表述,可以理解浮点数表示数据的真实情况,你的问题解决了吗? 谢谢2楼的回答,是这样的,最近我们在做一个接口项目,在我们这边填入的值是string类型的,然后要转成single类型的传给别人,其实就是一个扣费的功能,在我们这边填入多少,就传多少过去,上述例子里:卡上的余额还剩9.55元,我们系统填入的实际也是9.55元,转成single类型后,值就变成9.55000019073486,9.55000019073486>9.55了,于是填报就不成功,所以有什么方法可以解决一下吗 浮点数的取值,就是这样,要取精度的值。建议不要使用single类型,采用Currency类型,问题就解决了。 可以在转化后再round一下:sumje:=round(sumje*100)/100;当然以后像金额类的数据需要精确值的话用currency类型最好。 线程中创建窗口,关闭时遇到的问题。 在delphi中如何用线程向窗口发消息 请教在INTRAWEB程序中,IWDynamicChart1怎样改变图表类型属性? 问个弱智问题 ,如何在messagebox里显示变量的值? delphi显示中文不正常 升2星了放分,同时作个薪水调查,可能要找工作了 关于c/s结构,客户端连库的问题?很简单的!! 大伙可有stringgrid单元格合并拆分得源代码吗? VXD乍用?? 关于一个按钮的Click事件执行时,另外按钮有效的方法? DELPHI 中dataset 与JSON 相互转换的问题? 为什么
负数取值范围为 -3.4028235E+38 到 -1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。
它的有效位是7位。
2、sumje定义的是单精度浮点数,它保存的数据有效位是7位,
strtofloat(formatfloat('0.00',9.55))的值是:9.55,
但是,代码sumje:= strtofloat(formatfloat('0.00',9.55));
执行的结果是:sumje:=9.550000;
3、sumje的有效位7位的数是:9.550000;
4、实际是sumje保存的值是9.55000019073486,这与strtofloat(formatfloat('0.00',9.55))不是矛盾的,因为它的有效值是:9.550000。通过,上述表述,可以理解浮点数表示数据的真实情况,你的问题解决了吗?
建议不要使用single类型,采用Currency类型,问题就解决了。
sumje:=round(sumje*100)/100;当然以后像金额类的数据需要精确值的话用currency类型最好。