我用:dataset.FieldByName('pay').AsString := formatfloat('0.00',dataset.FieldByName('weight').asfloat * dataset.FieldByName('price').asfloat);得出结果是:1.90*0.55=1.045 保留两位后是1.05 (应该是正确的)
但 4650.00*0.7221 =3357.765 保留两位后怎么是3357.66
为何两个四舍五入结果不一样
但 4650.00*0.7221 =3357.765 保留两位后怎么是3357.66
为何两个四舍五入结果不一样
解决方案 »
- 求助:用哪种方式能更好的将A机器SQL库中的数据提交到B机器SQL库中呢?
- 按时间查询并统计数据库的问题
- DbGrid读取选中行的任意字段
- 奇怪的基础问题-关于Tform的一个frm实例{☆进则有分}
- 姚明成为NBA状元秀,不知道前途如何
- 关于调用Word的问题
- 怎样得到OpenPictureDialog所选中文件的路径
- 中程里面关于软件工程的部分多么?
- 如何打印DBGrid中某一条或某几条不连续的记录?
- 请教:如何操作WebBrowser的缓冲区,即对目录Temporary Internet Files中文件添加删除等??急急!!!
- StringGrid 的ColWidths属性使用 6:00结帐 delphi程序员应该不难
- 有血性的中国人听听人本猪是怎样说中国人的
format('%10.2f',[dataset.FieldByName('weight').asfloat * dataset.FieldByName('price').asfloat])
1.44 -> 1.4 // 四舍
1.46 -> 1.5 // 六入
1.45 -> 1.4 // 五看尾数(5后为0不入,5后不为0则进位)
1.451 -> 1.5抄来的 :-P
如果是1.35则1.4=round(1.35)
奇进偶不进。这样在一大串需要四舍五入的数相加相减相乘时误差小一点。eg:1.25+1.35+1.45+1.55+1.15+1.65=8.4=round(1.25)+round(1.35)+round(……
结果为
edit1.text:=3357.77
没有错呀
format('%10.2f',[strtocurr(format(‘%10.2f",[dataset.FieldByName('weight').asfloat]) * strtocurr(format('%10.2f.,[dataset.FieldByName('price').asfloat])])