0

我使用 cakephp 2.6.4。和 sql srv 2012。我需要以十进制(4,2)格式保存十进制数 -> 前 4 位,分隔符后 2 位。

在 sql server 中,我有数据类型 decimal(4,2),在模型中,我有验证 'rule' => array('decimal',2)。

当我尝试保存例如 4213,12 时,它报告消息需要将数字舍入到 4213 或 4214 我尝试使用点 (.) 作为分隔符,但不起作用

当我在 sql srv float 中设置数据类型时,我可以保存,但不能使用小数,

请问有什么帮助吗?肿瘤坏死因子

  • 接下来我尝试在 sql srv 中使用 numeric(4,2),但与使用 decimal(4,2) 相同

  • 我的验证数组是:'coordinate_x' => array('numeric' => array('rule' => array('decimal',2),

- 一切都被评论

  • 我设法得到 SQL 错误:错误:SQLSTATE[42000]:[Microsoft][SQL Server Native Client 11.0][SQL Server]将数据类型 varchar 转换为数字时出错。我删除了该字段的验证规则。似乎 cakephp 中的 dacimal 值等于字符。但是当我回滚验证规则时,我会收到错误,例如从 1234,12 到 1234 或 1235
4

2 回答 2

2

已解决 HTML 要求:

<input type="number" step="0.01">
于 2017-01-11T12:38:53.260 回答
1

$this->Number->format();可用于更改数字的格式。

例子:

$this->Number->format(floor($session->read('max_price')), 
      array('escape' => false, 
            'places' => 0, 
             'thousands' => ','
      ));

Place 属性用于设置十进制值。

于 2015-06-02T08:33:19.067 回答