拥有:
var Difference: DWORD // difference shows in milliseconds // List.Items.Count can be any 0 to ######## [...] sb.panels[2].Text := FloatToStr((((List.Items.Count) / difference) / 1000));
我想将结果文本格式化为任何###.##(两位小数).使用FloatToStrF并不成功(似乎不适用于DWORD).
解决方法
只是想知道这是数学而不是格式化的问题.为什么要将项目数除以1000?你的意思是将毫秒(你的差异变量)除以1000吗?也许这就是你想要的:
EventRate := (List.Items.Count) / (difference / 1000); // events per second; to make it per minute,need to change 1000 to 60000
当然,您仍然希望格式化结果.你需要它作为变量或类属性:
MyFormatSettings: TFormatSettings;
然后,你需要做一次,例如在FormShow中:
getlocaleformatsettings(locale_system_default,MyFormatSettings);
最后,这应该工作:
sb.panels[2].Text := format('%5.2f',EventRate,MyFormatSettings);