【问题标题】:Kdb - string to double or floatKdb - 字符串加倍或浮动
【发布时间】:2016-12-13 19:15:04
【问题描述】:

我正在尝试将字符串转换为 KDB 中的双精度或浮点数 - 该字符串包含一个具有“会计”格式的数字,类似于 2,228,25(金额) - 我使用类似 "j"$amount 的东西吗? 50 44 50 50 56 46 50 53 作为返回值。如何将该字符串转换为正确的数字?谢谢

【问题讨论】:

    标签: kdb q-lang


    【解决方案1】:

    在 kdb+ 中将字符串转换为其他类型的原子时,必须使用大写字母进行转换。将带逗号的字符串转换为数字将返回空值,因此请尝试使用 except 或 ssr 删除它们。

    "J"$"2,228,25" except ","
    

    "J"$ssr["2,228,25";",";""]
    

    【讨论】:

    • 非常感谢 - 您的评论适用于提供的示例。我有一个小错字,字符串是 2,228.25 。无论出于何种原因,当我使用 2,229.25 运行您的命令时,我得到 0N。没有把握。再次感谢您
    • 上面的例子是将你的字符串转换为长字符串。 null 返回是由小数点引起的。用“F”或“E”代替大小写。
    【解决方案2】:

    正如另一个示例所述,您可以在转换之前使用except 排除“,”。但是,如果您需要删除字符串中的许多字符,并且这些字符各不相同,您可以使用 inter 和接受的字符列表,而不是有例外:

    q)amt:"2/228,25.0"
    q)"F"$amt inter "0123456789."
    222825f
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      相关资源
      最近更新 更多