mysql - 如何显示小数点后两位的乘法结果

标签 mysql syntax

我正在构建一个查询,需要将两个字段的乘法结果输出为货币值。 0.00 - 9999.99。

我尝试了几种建议的解决方案,到目前为止,它们要么给出语法错误,要么四舍五入为没有小数的整数

我需要将乘法与格式化结果分开吗?

我当前的查询。

mysql> SELECT b.RowNumber,b.Email, z.PriceMultiplier * p.Price
    -> FROM Production p JOIN Performace pe ON p.Title = pe.Title
    -> JOIN Booking b ON b.PerfDate = pe.PerfDate AND b.Perftime = pe.PerfTime
    -> JOIN Seat s ON s.RowNumber = b.RowNumber
    -> JOIN Zone z ON z.Name = s.Zone;
+-----------+----------------------+-----------------------------+
| RowNumber | Email                | z.PriceMultiplier * p.Price |
+-----------+----------------------+-----------------------------+
| Z16       | Jane.Dot@live.com    |                          60 |
| Z18       | ZP@email.com         |                          60 |
| Z19       | ZP@email.com         |                          60 |
| U19       | Jane.Dot@live.com    |          26.999999284744263 |
| U20       | Jane.Dot@live.com    |          26.999999284744263 |
| X13       | Mike.Stand@email.com |          26.999999284744263 |
| X14       | Mike.Stand@email.com |          26.999999284744263 |
| Z19       | qvf3@live.com        |                          60 |
+-----------+----------------------+-----------------------------+


数据类型 - PriceMultiplier FLOAT NOT NULL 和 Price DECIMAL(6,2) NOT NULL

TRUNCATE 命令似乎是最推荐的,但它是四舍五入的

26.999999284744263 - 应该变成 26.99 ,而不是 27

最佳答案

您需要函数 TRUNCATE() :

TRUNCATE(p.BasicTicketPrice * z.PriceMultiplier, 2)

例如:

select truncate(26.999999284744263, 2)

返回

26.99

关于mysql - 如何显示小数点后两位的乘法结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58658194/

相关文章:

sql - 在复杂的 mysql 分页查询逻辑方面需要帮助

shell - 5 : Syntax error: “(” unexpected (expecting “then” ) in my script

syntax - clojure 的 ->(箭头)运算符和可选操作

syntax - "field ` 0 ` of struct is private"pub 结构属性错误

Objective-c 语法困惑

php - 使用 PHP 从数据库中获取一个变量

MySQL 查询与两个表的计算

mysql - SQL - 如何一次选择一行?

c++ - MySQL Connect/C++ 64 位构建错误

haskell - Haskell 有多少种句法形式?