【问题标题】:Get value after decimal separator from floating point number in Delphi从Delphi中的浮点数获​​取小数点分隔符后的值
【发布时间】:2015-05-15 22:22:43
【问题描述】:

如何获取给定浮点数的小数分隔符后的值?

Number: 129.60
Expected result: 60

【问题讨论】:

  • FormatFloat 返回一个十进制值。请详细说明您的意思。显示代码和输出。解释为什么输出不符合您的期望。
  • 很抱歉表达了错误的问题。我需要小数点分隔符后的值。如果我们有数字 129.60,我需要 60。
  • 好的,那么 Andreas 已经为您服务了。不过,这与FormatFloat 无关。请您编辑问题以使其清楚。
  • 编辑没有多大帮助。你没有说明上下文。我想你有一个浮点值。请明确上下文。

标签: delphi formatting


【解决方案1】:

只需使用Frac 函数即可。

例如,Frac(3.14) 等于 0.14。当然,一旦你去掉了数字的整数部分,你可以使用任何你选择的方法来制作一个字符串,比如FloatToStrFormatFloatFormat等。

【讨论】:

    【解决方案2】:
    var
      abobrinha, Expected : real;
    begin
      abobrinha := 129.60;
      Expected := abobrinha - trunc(abobrinha);
    end;
    

    【讨论】:

      【解决方案3】:

      如果您在string 中有您的号码,并且希望在string 中也有结果,那么您可以在不转换为数字的情况下执行此操作。如果没有,请参阅 Andreas 的回答。

      i := Pos( DecimalSeparator, value );
      if i > 0 then
        result := Copy( value, i + 1, Length( value ) - i )
      else
        result := '';
      

      【讨论】:

      • 这对于像1.2e1这样的字符串会失败。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 2012-02-01
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      相关资源
      最近更新 更多