数据类型和螺旋结果PHP / C#/ WinForms

时间:2011-05-22 06:19:09

标签: c# php .net mysql winforms

我在PHP和WinForms(C#)中使用Decimal数据类型存在很多问题。看,我已经为客户建立了一个网站和一个订单和库存管理应用程序,但通常这些价值都会变得非常棘手。我对如何处理定价,折扣和运费感兴趣。你用浮点数,双十进制数吗?

我发誓,当我第一次开始学习PHP并使用VARCHAR定价时,我遇到了麻烦! (而且我不是在宣传)

在我的客户数据库中,假设我有以下内容:

Column Name     Column Name     Column Name     Column Name  
Price           Quantity         Discount        LineTotal

ALl列是十进制数据类型,但Quantity除外。数量列是int。

当我进行非常基本的计算时,例如:

$LineTotal = $Price * $Quantity;

我得到了愚蠢的结果,如下:

5.98888
7.
9.111
0.4442

而且,最重要的是,它通常只会从计算中完全删除数字:

例如,如果乘法的结果是(或应该):4.92

我将查看数据库,它会说:4

我的.92美分在哪里?

导致这种情况的原因是什么?我做错了吗?

2 个答案:

答案 0 :(得分:2)

AFAIK PHP中没有小数类型支持。所以问题可能在于$LineTotal$Price$Quantity变量中的实际类型。考虑使用http://php.net/manual/en/function.gettype.php

进行调查

答案 1 :(得分:-2)

嗯,我不确定PHP,但是当我使用十进制类型和C#时,我发生了奇怪的事情。所以我现在只使用双倍。