sql round函数 请求解惑! 40

selectround(rand()*1000,3)这段代码在查询分析器里执行应该结果并没有四舍五入,而是一大串小数,这个是为什么呢?下面是我执行的结果,只有少数成功的。... select round(rand()*1000,3)
这段代码在查询分析器里执行应该结果并没有四舍五入,而是一大串小数,这个是为什么呢?
下面是我执行的结果,只有少数成功的。
411.63299999999998
670.35299999999995
811.89200000000005
30.795000000000002
156.33699999999999
304.87200000000001

请教高手为什么会出现这种情况。。。
按理说应该是四舍五入到小数点后3位才对!
你那个只是显示问题而已,浮点数1在内存中并不是1!

这句没懂,可是明明显示的后面都是999999和00000什么的。
你的意思是我在程序里调用的时候就不会出现后面的一长串数字了吗?

如果我直接select round(980.525121964135185,3)这样写
结果就会是980.525000000000000 这个四舍五入为什么又会成功呢?
展开
 我来答
uestczcs
2008-07-24 · TA获得超过448个赞
知道答主
回答量:139
采纳率:0%
帮助的人:105万
展开全部
SQL取整函数ROUND的用法
ROUND ( numeric_expression , length [ , function ] )

参数
numeric_expression

精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

length

是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。

function

是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。

例:
Select ROUND(150.75, 0)
151.00

Select ROUND(150.75, 0, 1)
150.00

你那个只是显示问题而已,浮点数1在内存中并不是1!
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式