美好的一天。将Postgre中的列中的数字舍入为最接近的整数
我有多个表格,里面填充了关于国家的信息。其中一个表格包含每个国家的人口数字;另一个包含每种语言的发言者的百分比。
我们将采取这两个数字,并列出一列,列出每种语言有多少发言者......基本上,我们将它们相乘。这很简单。但是,并不简单的是以我们应该的方式展示它们。
下面是我使用的查询:
SELECT country.name AS \"country\",
city.name AS \"capital\",
country_language.language,
(country.population * country_language.percentage) AS \"speakers\"
FROM lab2.country, lab2.country_language, lab2.city
WHERE country.country_code = country_language.country_code
AND city.id = country.capital
AND country_language.is_official = true
ORDER BY country.name,
(country_language.percentage * country.population) DESC;
这是第一个结果表单元格填充:
1190528034.66797
这里就是它应该是:
11905280
通常情况下,我只是做一个味或其他这些整数,而这将解决这个问题。但正如你所看到的,我想要舍去的数字不一定在小数点后出现。
我应该怎么做才能把这些关掉?
这里是我的网站(它的查询5要选择):
http://babbage.cs.missouri.edu/~asm3kf/cs3380/lab2/lab2.php
,这里是我们应该匹配的页面:
http://babbage.cs.missouri.edu/~klaricm/cs3380/lab2/lab2.php
你看到不一致贯穿整个表格。
在此先感谢!
编辑:
我更新了网站,包括人口和百分比数字。希望这在某种程度上有所帮助。
使用ceil/floor/round可能有所帮助,但预期结果比实际小2个数量级,是对的还是缺少一些数字? – Marc 2013-02-11 01:35:03
它看起来像你的'country_language.percentage'被保存为百分比即。 '75%',而不是小数即。 '.75'。所以,你的第一个步骤将是转换的,然后用['轮()'](http://www.postgresql.org/docs/9.1/static/functions-math.html) – Sean 2013-02-11 01:37:38
肖恩, 百分比根据模式,数字被存储为实数。 – nerdenator 2013-02-11 01:43:30