Поскольку сообщение об ошибке довольно неясно, я подумал, что я бы выложил его в качестве другого возможного решения.
Моя среда использует Single Sign On (или STS, если вы предпочитаете) для аутентификации пользователя через сайт ASP.NET MVC. Сайт MVC, в свою очередь, выполняет сервисный вызов для моей конечной точки сервиса, передавая токен-носитель, который он запросил от сервера STS с токеном Bootstrap ранее. Ошибка, которую я получил, была, когда я сделал сервисный звонок с сайта MVC.
В моем случае это вызвано конфигурацией моей службы, как указано ниже. В частности, узел аудитории Uris должен точно соответствовать конечной точке службы:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="https://localhost/IdpExample.YService/YService.svc" />
</audienceUris>
....
</identityConfiguration>
</system.identityModel>
HTH.
Я полагаю, что parseFloat () делает это.
parseFloat(4.00) // 4
parseFloat(4.10) // 4.1
parseFloat(4.01) // 4.01
Ваш код также удаляет нули в числах, таких как "1000". Лучшим вариантом было бы отбрасывать только нули после десятичной точки. Базовая замена регулярными выражениями будет выглядеть так:
str.replace(/(\.[0-9]*?)0+$/, "$1"); // remove trailing zeros
str.replace(/\.$/, ""); // remove trailing dot
string to string: parseFloat(value).toFixed(2);
string to number: +(parseFloat(value).toFixed(2))
number to number: Math.round(value*100)/100;
number to string: (Math.round(value*100)/100).toFixed(2);
Итак, вы начинаете со строки и хотите получить строковый результат, верно?
val = "" + parseFloat(val);
Это должно сработать. Более краткие
val = "" + +val;
или
val = +val + "";
также подойдут, но эту форму слишком сложно понять.
Как они работают? Они преобразуют строку в число, а затем обратно в строку. Возможно, вы не захотите использовать их, но знание того, как работают преобразования JavaScript, поможет вам отладить все, что вы придумаете.
String(4) // "4"
String(4.1) // "4.1"
String(4.10) // "4.1"
String(4.01) // "4.01"
parseFloat работает, но вам нужно преобразовать его обратно в строку.