首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sql server 2000中截断小数值。

问如何在sql server 2000中截断小数值。
EN

Stack Overflow用户
提问于 2009-07-02 10:35:37
回答 3查看 13.8K关注 0票数 0

我有一个表达式:

代码语言:javascript
复制
Select (2345789 * 39.456) / 100 

输出为925554.5078400。

我想要显示925554.50,即小数点后的2个值。

如果我使用round

代码语言:javascript
复制
Select round((2345789 * 39.456)/100, 1)

输出为925554.5000000。但我想要小数点后的两位数。如何做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-02 10:40:50

这是显而易见的,但925554.5000000和925554.50是同一个数字。

如果您希望显示带有两位小数的数字,那么这是您的UI代码的问题,而不是数据库的问题。

话虽如此,如果您必须在数据库本身中执行此操作,请尝试执行以下操作:

代码语言:javascript
复制
-- 1 decimal place
SELECT CAST(ROUND(@yourNumber, 1, 1) AS DECIMAL(18, 1))

-- 2 decimal places
SELECT CAST(ROUND(@yourNumber, 2, 1) AS DECIMAL(18, 2))

-- 3 decimal places
SELECT CAST(ROUND(@yourNumber, 3, 1) AS DECIMAL(18, 3))

-- 4 decimal places
SELECT CAST(ROUND(@yourNumber, 4, 1) AS DECIMAL(18, 4))
票数 5
EN

Stack Overflow用户

发布于 2010-12-11 12:52:39

我也有使用截断值的解决方案

代码语言:javascript
复制
Select (2345789 * 39.456)/100  result-925554.5078400
select cast (ROUND((2345789 * 39.456)/100 ,2,1)as decimal(18,2)) result-925554.50
select cast (ROUND((2345789 * 39.456)/100 ,3,2)as decimal(18,3)) result-925554.507
select cast (ROUND((2345789 * 39.456)/100 ,4,3)as decimal(18,4)) result-925554.5078

好的。我希望你能理解这一点。

票数 1
EN

Stack Overflow用户

发布于 2009-07-02 10:40:11

尝试(未测试):

代码语言:javascript
复制
SELECT CAST(number as decimal(18,2))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1073658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档