прервите неиспользованные десятичные числа с JavaScript

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

Моя среда использует 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.

12
задан alain.janinm 29 April 2012 в 20:16
поделиться

5 ответов

Я полагаю, что parseFloat () делает это.

parseFloat(4.00) // 4
parseFloat(4.10) // 4.1
parseFloat(4.01) // 4.01
14
ответ дан 2 December 2019 в 03:49
поделиться

Ваш код также удаляет нули в числах, таких как "1000". Лучшим вариантом было бы отбрасывать только нули после десятичной точки. Базовая замена регулярными выражениями будет выглядеть так:

str.replace(/(\.[0-9]*?)0+$/, "$1"); // remove trailing zeros
str.replace(/\.$/, "");              // remove trailing dot
15
ответ дан 2 December 2019 в 03:49
поделиться
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);
4
ответ дан 2 December 2019 в 03:49
поделиться

Итак, вы начинаете со строки и хотите получить строковый результат, верно?

val = "" + parseFloat(val);

Это должно сработать. Более краткие

val = "" + +val;

или

val = +val + "";

также подойдут, но эту форму слишком сложно понять.

Как они работают? Они преобразуют строку в число, а затем обратно в строку. Возможно, вы не захотите использовать их, но знание того, как работают преобразования JavaScript, поможет вам отладить все, что вы придумаете.

2
ответ дан 2 December 2019 в 03:49
поделиться
String(4) // "4"
String(4.1) // "4.1"
String(4.10) // "4.1"
String(4.01) // "4.01"

parseFloat работает, но вам нужно преобразовать его обратно в строку.

1
ответ дан 2 December 2019 в 03:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: