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工期为啥会有小数点?的主要内容,如果未能解决你的问题,请参考以下文章

project2007 总任务工期为小数,如何破解?

Project中工期出现小数的问题。

为何project中会出现小数点工期

Project 摘要任务的工期出现小数位

Project中工作日出现的小数点如何更改?

project2010中工期计算出现小数,比如,9.9到9.20号工期显示11.88天,不应该是1