舍入2列中具有小数位的值

时间:2013-07-02 08:10:33

标签: mysql sql phpmyadmin

由于某些原因,我的两列中的某些值有小数位,这是我需要解决的代码中的一个错误,但它现在导致了问题。

如何对带小数位的数字进行舍入?

示例数据

# Table: level_3
|---------------------|
| day_start | day_end |
|-----------|---------|
| -123      | 20      |
| -650      | 234     |
| -133.042..| 104.0416|
| -581      | 123     |
|---------------------|

预期输出

# Table: level_3
|---------------------|
| day_start | day_end |
|-----------|---------|
| -123      | 20      |
| -650      | 234     |
| -133      | 104     |
| -581      | 123     |
|---------------------|

编辑:如果它更容易,则不需要四舍五入,只需在句点之后删除任何内容。


编辑2:我实际上修复了我的问题,我只是将结构更改为INT并返回删除了所有小数!但那是答案,他们会帮助其他人寻找答案!

6 个答案:

答案 0 :(得分:1)

使用PHP floor() 函数或mysql FLOOR() 函数

PHP

<?php
    echo floor(44.62);  // will output "44"

的MySQL

SELECT FLOOR(44.62);
-> 44

无论其

SELECT FLOOR(-44.62);
-> -45

所以,你可以尝试类似的东西:

SELECT IF(day_start < 0, CEIL(day_start), FLOOR(day_start)) s, IF(day_end < 0, CEIL(day_end), FLOOR(day_end)) e FROM level_3;

答案 1 :(得分:1)

您有两个简单的选择:

  • 使用ROUND,FLOOR,CEIL mysql函数
  • 查询数据库时舍入值

e.g:SELECT ROUND(day_start, 0) as day_start, ROUND(day_end, 0) as day_end

  • 使用roundfloorceil
  • 查询数据库后使用php舍入值

答案 2 :(得分:0)

我建议使用number_formatfloor

答案 3 :(得分:0)

您可以尝试此操作(SQL Server)

SELECT CONVERT(INT,Day_Start), CONVERT(INT,Day_End)

答案 4 :(得分:0)

SQL:


SELECT SUBSTRING (notetitle,1,4), SUBSTRING(notedescription,1,3) FROM notes

答案 5 :(得分:0)

我实际上修复了我的问题,我只是将结构更改为 INT ,然后将其删除了所有小数!但是感谢答案,他们会帮助其他人寻找答案!