我有一张名为products
的表格。它存储产品名称及其价格。价格以整数的格式存储为美分。
当我选择我的数据时:
SELECT name, price
FROM products
我得到这样的数据:
Name Price
Car 3032
Banana 178
但我希望数据的格式如下:
Name Price
Car 30,32
Banan 1,78
这可能吗?我现在只有sum,count.. etc
答案 0 :(得分:7)
怎么样
SELECT name, price/100 as price FROM products
答案 1 :(得分:1)
我在这里看到的一个大问题是你想使用逗号。我不知道这样做的包装类。但是,可以像这样解决您的问题。通常我会说你应该转换成双倍和分数,但这并不是真的需要。你需要的是一些数学来获得每个数字的价值。
(price - price%1000)/1000
模数将移除不能被1000整除的多余部分。在除法之后,你将给出3个Car例子。一些实现不需要等式的模数部分并且将正确地舍入它。我不想相信这些事情。在第一个数字后,事情变得有点棘手。
在处理数字时,您需要声明4个变量来保存每个位置。如果你想要价格高于99.99你需要更多的地方。假设你有int A,B,C和D.为了简单起见,我还将使用变量temp。
A = (price - price%1000)/1000
temp = price - (A*1000)
B = (temp - temp%100)/100
temp = temp - (B*100)
C = (temp - temp%10)/10
temp = temp - (C*10)
D = temp
使用此过程,您可以将整数的每个位置的数字输入A,B,C和D.在计算该位置后,临时变量会删除该部分。这允许相同的数学函数适用于下一个地方。真的,你可以在没有临时性的情况下做到这一点,但它可能会不必要地混淆你的代码用户(或你自己大声笑)。现在你有了这些地方,你可以将它们零碎地放入你想要的任何输出中。
std::cout<<"$"<<A<<B<<","<<C<<D;
这只是C ++的一个例子。理想情况下,您还要检查是否A,B等。是0,并说明了这一点。