Скрыть десятичные разряды до 2 мест, как Excel, не удаляйте в php, когда значение установлено в JavaScript - PullRequest
0 голосов
/ 18 мая 2018

Я использую CakePHP 2.5, создавая калькуляционный лист, где я вычисляю значения с помощью функции javascript, которая дает значение в десятичных разрядах, и если я округляю значение, то для точного количества есть разные итоги, поэтому я хочу показать значениеустанавливается javascript только до 2 десятичных знаков, но хочет сохранить все десятичные значения в базе данных, т.е. MySql,

    <td colspan="2" >
<?php echo $this->Form->input('Particular.particular_value'.$i,  array('name'=>'particular_value[]','label'=>false, 'class'=>'form-control', 'type'=>'number','min'=>'0','step'=>'.001','default' => "0",'autocomplete' => 'off','value'=>isset($this->data['Particular'][$index]['particular_bare_pipe_rate_per_mt_value'])?$this->data['Particular'][$index]['particular_bare_pipe_rate_per_mt_value'] :'0')); ?>
    </td>

и

$('#CostValue').val(precisionRound(pbcrv, 0));
function precisionRound(number, precision) {
        var factor = Math.pow(10, precision);
        return Math.round(number * factor) / factor;
    }

, когда я ввожу значения, тогда он вычисляется по предопределенным формулам в раундеони используют функцию PrecisionRound, но когда я получаю итоговое значение, оно всегда будет отличаться от итогового значения, полученного на листе Excel, я хочу что-то вроде функции номера листа EXCEL, где я показываю значение до 2 десятичных на фронте для отображения, но когда я вычисляю или сохраняю значения вв базу данных он должен быть сохранен со всеми десятичными значениями.

Calculation table

Поля ввода с синим фоном - это поля ввода, которые вызывают функцию js для дальнейшего расчета, серый фонполя ввода отключены для ввода (они основаны на первых входах)туз, где я хочу, чтобы отобразить 2 десятичное значениеВот так--

  • Фактическое значение - 2664.267779
  • Показать Значение спереди - 2664
  • Сохранить в базе данных - 2664.267779

1 Ответ

0 голосов
/ 18 мая 2018

По ряду причин вам следует не полагаться на вычисления на стороне клиента, чтобы отправить данные на сервер и затем сохранить их.Более надежным решением было бы POST ввести входные данные для расчета и снова выполнить расчет на сервере.

Причин этому много, например

a) Ошибка на стороне клиентаcalcs может легко увидеть NaN, отправленный на сервер по ошибке.

b) Если при этом расчете (например) вычислялась общая стоимость для X предметов того же типа, что вы заказывали, и показывалось общее количество, то это было сложно.Пользователь сможет редактировать поле ввода перед публикацией и, возможно, заплатить меньшую сумму за свои товары.


Для тех, кто читает (b) и думает: «Нет, никто этого не сделает»Я видел это в дикой природе ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...