delphi7 FormatFloat 四舍五入
来源:互联网 发布:南城整形医院知美 编辑:程序博客网 时间:2024/06/07 06:33
相信delphi7开发人员也遇到过这个问题FormatFloat 四舍五入的时候该进一的时候没进一,测试代码如下:
procedure TForm1.FormShow(Sender: TObject);
var
a:double;
begin
a:=16.685;
showmessage(formatfloat('0.00',a));
application.Terminate;
end;
结果是16.68.
FormatFloat源代码如下
function FormatFloat(const Format: string; Value: Extended): string;
var
Buffer: array[0..255] of Char;
begin
Value:=StrToFloat(FloatToStr(Value));
if Length(Format) > SizeOf(Buffer) - 32 then ConvertError(@SFormatTooLong);
SetString(Result, Buffer, FloatToTextFmt(Buffer, Value, fvExtended,
PChar(Format)));
end;
很明显如果数据类型是extended的话就没问题,即使是这样,我在一个极端的情况下
var
a:Eetended;
begin
a:=clientdataset.fieldbyname('aa').value;
showmessage(formatfloat('0.00',a));
end;
还是出现不进一的情况,最后狠心改了SysUtils.pas.
function FormatFloat(const Format: string; Value: Extended): string;
var
Buffer: array[0..255] of Char;
begin
Value:=StrToFloat(FloatToStr(Value)); //增加了这段代码
if Length(Format) > SizeOf(Buffer) - 32 then ConvertError(@SFormatTooLong);
SetString(Result, Buffer, FloatToTextFmt(Buffer, Value, fvExtended,
PChar(Format)));
end;
问题解决了,最后把SysUtils.dcu共享一下
http://download.csdn.net/detail/yz304zhang/9852175
把SysUtils.dcu覆盖到Borland\Delphi7\Lib目录下就可以了
- delphi7 FormatFloat 四舍五入
- FormatFloat函数
- Format详解(FormatDateTime FormatFloat)
- Round函数 formatfloat函数
- Format、FormatDateTime、FormatFloat
- FormatFloat的用法 (转)
- FormatFloat的用法
- 四舍五入
- 四舍五入
- 四舍五入
- 四舍五入
- 四舍五入
- 四舍五入
- 四舍五入
- 四舍五入
- 四舍五入
- 四舍五入
- 四舍五入
- 收藏:优秀的个人博客
- Java萌新的排序算法学习(初级篇)
- H264参数结构一:元素的分层结构
- AbstractReferenceCountedByteBuf源码分析
- Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'
- delphi7 FormatFloat 四舍五入
- ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象
- Java中Volatile关键字详解
- 求二叉树的所有结点之和,Python实现
- 欢迎使用CSDN-markdown编辑器
- java实现全排列
- 最简单的php操作MySQL数据库
- H264参数结构三:序列参数集层(SPS) & 图像参数集语义
- Spring4.2.4和quartz2.2.3整合定时任务