是派小星呀 2023-02-06 21:18 采纳率: 65.1%
浏览 138
已结题

数据库转换数据不对问题

字符串类型的 4195.40 转成 浮点型 ,结果发现不对,请问这是什么问题,有什么解决办法吗

select '4195.40' :: FLOAT
  • 写回答

8条回答 默认 最新

  • 高铭杰 腾讯数据库内核开发工程师 2023-02-07 10:25
    关注

    你给出的结果是因为使用了不精确类型被PG把结果改写了。
    建议理解一下postgresql的几种浮点型,避免以后使用上踩坑。

    1. Postgresql提供四类浮点型,按功能看可以分成两类:

    2. 关于float(n)的写法,文档8.1.3节有详细解析:http://www.postgres.cn/docs/14/datatype-numeric.html

      • PostgreSQL还支持 SQL 标准表示法float和float§用于声明非精确的数字类型。在这里,p指定以二进制位表示的最低可接受精度。 在选取real类型的时候,PostgreSQL接受float(1)到float(24),在选取double precision的时候,接受float(25)到float(53)。在允许范围之外的p值将导致一个错误。没有指定精度的float将被当作是double precision。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 2月15日
  • 已采纳回答 2月7日
  • 修改了问题 2月7日
  • 创建了问题 2月6日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看