首页 > 解决方案 > 如何在 T-SQL 中使用一个查询来舍入正数和负数?

问题描述

left(cast(round(s.test, 0) * 100, 3 as varchar(36)), 5) + '%' 

这显示了我想要的结果,但是当它是负数时,例如 -0.005036,它​​不会显示到小数点后 3 位;相反,它显示 -0.54。

标签: sql-server

解决方案


什么版本的 SQL 服务器?你确定你不只是想要FORMAT(s.test, 'P3')吗?FORMAT 应该适用于 2014 及更高版本。这可能是在 SQL 中进行文本格式化的最佳方式。更多文档:https ://docs.microsoft.com/en-us/sql/t-sql/functions/format-transact-sql

有关这些格式模式的完整说明,请参阅 .NET Framework 文档,了解一般字符串格式、自定义日期和时间格式以及自定义数字格式。一个很好的起点是主题“格式化类型”。


推荐阅读