project2007工期为啥会有小数点?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了project2007工期为啥会有小数点?相关的知识,希望对你有一定的参考价值。
时间显示设置成可显示小时,如果作业时间不是默认的每天8小时,工期即会有小数点 参考技术A 非工作日”都设置为“工作日”呢?因为如果设置某任务
工期7天,它就会...定义常规工作时间
---
点击下一步
---
定义工作周,勾选星期六,星期天...
SQL Server 2008:为啥不四舍五入到小数点后两位?
【中文标题】SQL Server 2008:为啥不四舍五入到小数点后两位?【英文标题】:SQL Server 2008: Why won't this round to two decimal places?SQL Server 2008:为什么不四舍五入到小数点后两位? 【发布时间】:2011-02-07 19:33:25 【问题描述】:SELECT
ROUND(WeightInOZ / 16, 2)as WeightInLbs
FROM
Inventory
我得到的结果看起来像一个整数 1,2 等
【问题讨论】:
WeightInOZ
的数据类型是什么?
它是一个 int,但我认为这并不重要,因为我对结果进行了修改
可能重复(没有票数?!?):***.com/questions/44046/…
@OMG:我不认为这是重复的(尽管如果 SO 上没有重复我会感到惊讶,考虑到这是一个很常见的错误......我没有不过麻烦看)
@Adam Robinson:OP cmets 建议使用截断进行舍入,这是链接提供的。
【参考方案1】:
尝试将 16 更改为 16.0
SELECT
ROUND(WeightInOZ / 16.0, 2)as WeightInLbs
FROM
Inventory
您看到了奇怪的结果,因为它将除法的结果视为整数而不是小数。指定 .0
告诉 sql server 将其视为小数。
更新:
如果尾随的零吓坏了你,你可以随时这样做:
SELECT
CAST(ROUND(WeightInOZ / 16.0, 2) AS NUMERIC(8,2)) as WeightInLbs
FROM
Inventory
【讨论】:
这将给我这个结果:0.060000 这是正确轨道上的定义 嗯,你期待什么结果? 我期待 0.06 或 233.23 等 我知道这看起来很奇怪,但它们是相同的数字。如果您不喜欢看到尾随零,您可以使用我的更新中描述的方法。 哦,我明白了,这很聪明【参考方案2】:问题是这样的:
WeightInOZ / 16
由于您要处理两个整数,SQL Server 会截断余数,因此没有小数部分可以舍入。
您想要做的是强制它执行浮点(或十进制)除法。最简单的方法是将16
更改为16.0
。
SELECT
ROUND(WeightInOZ / 16.0, 2)as WeightInLbs
FROM
Inventory
【讨论】:
@Nicholas:您评论的第一部分是否丢失了?以上是关于project2007工期为啥会有小数点?的主要内容,如果未能解决你的问题,请参考以下文章