- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序,用户可以在其中设置值的显示方式。用户输入格式化字符串,组件使用 FormatFloat 来显示该值。
但现在我们正在使用一个新的第三方组件,它使用 Format 函数格式化值,当然,我们的用户格式都不起作用,因为 Format 和 FormatFloat 函数使用不同的语法。
那么有人知道两者之间转换的方法吗?或者也许有人有代码可以做到这一点?
谢谢
阿杰
最佳答案
虽然 FormatFloat 的格式字符串或多或少可以转换为 Format 的格式字符串,但您可能只能获得正值的真正相似性。 Format 方法根本没有提供足够的灵 active 来合并 FormatFloat 方法的格式字符串提供的功能和细粒度控制。
例如,FormatFloat 方法允许使用三种不同的格式来表示正值、负值和零值。此外,FormatFloat 格式字符串允许使用字符串文字,例如'#,##0.00;;零'; (这意味着零值被打印为“零”)。
要使用 Format 函数获得类似的结果,您自己需要完成 FormatFloat 通过格式字符串为您完成的所有繁重工作。
因此,尽管我反对更改第三方控件的源代码,就像我反对更改 vcl 源代码一样,但我同意 David 的观点:找到一种方法使第三方控件使用 FormatFloat 函数。最好通过自定义后代或通过插入器类(也称为拦截器类),但如果失败,请务必更改第三方控件的源。只需确保正确标记更改的部分,以便在切换到该控件的新版本时可以轻松重做。
关于Delphi FormatFloat 和 Format 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4992043/
在此代码中: FormatFloat('0.##########',XX.AsFloat) 如果数据库中的值XX是12.12345,它会返回什么值? #的个数超过小数点后5位,会进行四舍五入吗? 我找
我有一个应用程序,用户可以在其中设置值的显示方式。用户输入格式化字符串,组件使用 FormatFloat 来显示该值。 但现在我们正在使用一个新的第三方组件,它使用 Format 函数格式化值,当然,
我在 Delphi 2010 中遇到了舍入奇怪的问题,其中一些数字在 roundto 中向下舍入,但在 formatfloat 中向上舍入。 我完全意识到十进制数的二进制表示有时会给出误导性的结果,但
我只是想使用类型开关来处理时间、float32 和 float64。它适用于时间和 float64s,但 strconv.FormatFloat(val, 'f', -1, 32) 一直告诉我不能使用
这个问题在这里已经有了答案: Is floating point math broken? (31 个回答) 3年前关闭。 尝试使用函数 FormatFloat 将 double 值四舍五入到小数点后
我正在尝试使用以下脚本将货币格式的值打印到报告上的 TfrxMemoView: procedure txCreditLimitOnBeforePrint(Sender: TfrxComponent);
我是一名优秀的程序员,十分优秀!