zoukankan      html  css  js  c++  java
  • Sql server 的float和real类型会产生科学计数法,如何消除科学计数法

    sqlserver 查询的 float 类型 如果是0.00000000001的话,会被显示为1E-11,请问怎么才能让查询出的结果显示为正常显示方式而不是科学计数法?

    答案:

    float 和 real 用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。

    解决float科学计数的问题只能靠转换,decimal(12,11)会自动补全到小数点后11位。

    您可以试试这样转化: 先建一个测试表:

    CREATE TABLE dbo.sci_notation 
    
    ( num float ) 
    
    INSERT INTO dbo.sci_notation VALUES (0.0000000001)

    因为不清楚所有表中float的小数位,所以转换成decimal尽量大点,我选了decimal(38,28),保留28位小数。先转成varchar,然后对varchar进行去0操作。

    select replace(rtrim(replace(convert(varchar,cast(num as decimal(38,28))),'0',' ')),' ','0')  from dbo.sci_notation 
    
    ----------------------------- 
    
    (No column name) 0.0000000001
    
    -----------------------------
  • 相关阅读:
    面试题库
    集合的交、查、并
    mysql_server安装
    maven构建jar包
    Centos7下 升级php5.4到7.1 yum安装
    redis
    常见shell用法
    Mac下的LDAP客户端 ApacheDirectoryStudio
    redis弱密码漏洞利用
    Freeradius+Cisco2500AC+OpenLdap认证
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/8883325.html
Copyright © 2011-2022 走看看