我正在构建一个查询,需要将两个字段的乘法结果输出为货币值。 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/