Вы должны убрать все запятые из строки до того, как попытаетесь разобрать его, так как анализ числа с запятыми будет анализировать только до первой запятой.
//For example Result
parseFloat("5,4,3") // 5
parseFloat("15,000") // 15
parseFloat("123,456") // 123
Это можно сделать с помощью простой замены: .replace(/,/g,'');
Я также внес несколько изменений, чтобы привести в порядок:
replace
, и parseFloat
, называемые parseCurrency
, чтобы сделать ее легко пригодной для повторного использования formatCurrency
, чтобы сделать ее легко многократно используемой dec_balance
и nov_balance
входы могут совместно использовать событие, поскольку изменение любого из них должно привести к пересчету net
const formatCurrency = (str) => (""+str).replace(/[^\d.]/g, "").replace(/^(\d*\.)(.*)\.(.*)$/, '$1$2$3').replace(/\.(\d{2})\d+/, '.$1').replace(/\B(?=(\d{3})+(?!\d))/g, ",");
const parseCurrency = (str) => str.replace(/,/g,'');
$('input.inputdecimals').keyup(function(event) {
if (event.which >= 37 && event.which <= 40) return;
$(this).val((i,v) => formatCurrency(v));
});
$("#txt_balance_dec, #txt_balance_nov").keyup(function() {
var bal_dec = parseCurrency( $("#txt_balance_dec").val() );
var bal_nov = parseCurrency( $("#txt_balance_nov").val() );
var result = bal_dec - bal_nov;
$('#txt_nett_dec').val(formatCurrency(result));
});
input { display: block; margin: 10px 0;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Dec <input type="text" class="inputdecimals" id="txt_balance_dec" name="txt_balance_dec" value="0.00">
Nov <input type="text" class="inputdecimals" id="txt_balance_nov" name="txt_balance_nov" value="0.00">
Net <input type="text" class="inputdecimals" id="txt_nett_dec" name="txt_nett_dec" value="0.00" readonly>
[1128] ( Стоит также отметить, что ваша функция форматирования выглядит раздетой -
, поэтому net
будет абсолютным значением. ) [ 1126]
По сообщениям bcpp работает просто великолепно на obj-c, и он имеет плагин TextMate, также.
Частичный ответ - то, что некоторые небольшие вещи могут быть установлены из XCode как отступы с 2 пространствами. См. Предпочтения Добавления отступа в Руководстве Рабочей области XCode.
XCode имеет встроенный модуль форматирования кода - он немного прост, но может переопределить ваш код. Сначала установите ваши настройки отступов в Xcode (, как подсказывает mouviciel ). Затем выберите источник, который вы хотите восстановить, и выберите «Правка | Формат | Повторный отступ.
Если вы хотите пойти дальше, у Hackertoys есть инструкции для добавления поддержки uncrustify в Xcode. Я не пробовал это.
Повозившись с несколькими внешними программами форматирования и слабым внутренним форматером xcode, я наконец остановился на uncrustify. Uncrustify имеет довольно хорошую поддержку Objective-C, может быть легко интегрирован с xcode в качестве пользовательского сценария и предоставляет централизованное средство форматирования практически для всех языков, которые изначально поддерживаются xcode.
Самым большим препятствием для xcode является сложный файл конфигурации. Моя рекомендация: возьмите один из предоставленных образцов конфигураций (ben2.cfg очень хорошо), объедините его с образцом objc.cfg и при необходимости измените его.