有没有一种方法(不需要编写代码)来使用公制前缀显示数字?

3
这个问题与此问题相关,涉及在Delphi应用程序中自动使用一些Windows资源管理器功能。
在Delphi中是否有一种自动使用度量前缀格式化整数的方法?是否可以自动获得类似于Windows资源管理器的结果?我的意思是将1024转换为1.0 K。
比如说:
FormatMetric('FileSize = %d', [26112], 1,'B')
// where the third parameter is the number of decimal digits
// and the fourth is the string that is appended

将返回

25.5 KB

当然我可以编写这个,但是RTL中是否有类似的东西呢?

KB还是KiB?1024不是一个公制前缀。 - Marco van de Voort
通过度量前缀,我指的是K、M、G、T、P(表示千、兆、吉、太、拍)。我指的是文件系统显示这些值的方式。 - UnDiUdin
1个回答

6

谢谢,这个API正好符合我的需求。我可以想象没有Delphi的封装器,但也不需要。 - UnDiUdin
ShLwAPI.pas 中,StrFormatByteSizeAStrFormatByteSizeW 都有 Delphi 声明;只需像往常一样将其添加到您的 uses 子句中即可。 - Ken White
是的,我刚刚发现了这个问题。但即使使用 StrFormatByteSizeW,我也无法获取大于2GB的值。为什么会这样? - UnDiUdin
@Ken White:在Delphi 7中不存在该单元,所以我不知道。 - The_Fox
我的错,我用一个TSpinEdit创建了一个测试应用程序,其值被转换为Int而不是Int64,现在我尝试使用简单的TEdit和StrToInt64,我能够获得大于2GB的良好结果。 - UnDiUdin
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接