大坑之浮点数显示问题

发表日期:2022-08-15 16:47:01 | 来源: | | 浏览(710) 分类:SQLServer

以下情况在php+SQLserver下经过验证是存在问题的,其它语言请自酌。

一、字段类型是float类型时

image.png

image.png  

输出

image.png 

 显示正常,十分具有迷惑性,开发的时候你以为是没问题的,

但是

image.png

输出

image.png 

150.12 显示为 15.119999999999999

这是太坑了,我们的项目是重构一个用了15年+的项目,库不变只做程序,项目里见到最多的字段就是金额小数点,做到后面发现这个问题,所有输出的位置到处都得格式化去改!

还有一个问题是,如果你希望的是x.xx这种保留两位的格式,不好意思,不建议用float类型!因为12.00 进库即存为12,出库也12,不格式化没法是12.00!

对比之下mysql是没有问题的,因为是是这样定义的float(9,2)保留两位!


二、字段类型是 decimal(18, 2) 类型时

0.00 显示为 .00

image.png

输出:

image.png

导致于 所有显示地方都得把 .00 换成 0.00。

(后发现可能是php-SQLserver驱动的兼容问题一个项目用的pdo_dblib显示是好的,一个用的pdo_sqlsrv显示不正常,可能跟驱动版本有关系,反正用php+SQLserver的小伙伴格外注意一下),

集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。