我用: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
为何两个四舍五入结果不一样
解决方案 »
- 求指导!!!如何判断一段字符为链接
- DBGridEh的简单问题,如何根木某列的值锁定某行记录不让编辑,其他行可以编辑
- 怎样通知远程WEB服务网清除或者刷新当前会话的高速缓存?
- 请教一个关于DBGridEh的多选后的定位问题
- ActiveForm问题,在客户端即使将IE的本地Intranet的安全级别降到最低,也无法提示下载?
- 请教一个学生管理系统的问题!我的问题跟yanpinghui一样。
- 语法问题
- IntraWeb编写的程序怎么运行??高分,OnLine Wait!!!
- DELPHI6自带控件的一个资源管理器样式的控件无法得到选中项
- 如何实现LISTBOX在软件上的移动,即自动上下移动。可用一定给分。
- 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])])