代码之家  ›  专栏  ›  技术社区  ›  Wesley Kluckhohn

配置单元将字符串强制转换为浮点小数

  •  5
  • Wesley Kluckhohn  · 技术社区  · 7 年前

    我正在尝试将一个具有可变小数点的字符串字段转换为双精度。我遇到的问题是,因为十进制是可变的,可以是以下任意一种:

    359.879999
    35.8799999
    3.59879999
    

    (将小数点移动到任何需要的位置…但字段的长度始终为9)

    我尝试过:

    cast(RECURR as float) as RECURR
    

    但这只是返回:

    359.880004882813
    

    我尝试过:

    cast(RECURR as decimal) as RECURR
    

    这将返回:

    360
    
    1 回复  |  直到 7 年前
        1
  •  11
  •   Gordon Linoff    7 年前

    试一试怎么样:

    select cast(recurr as decimal(19, 9))
    

    这应该适用于小数点所在的任何地方。

    请注意,未使用的小数位数将为零。