Как использовать “%f” для заполнения двойного значения в строку с правильной точностью

Ваш первый WebSecurityConfigurerAdapter

http
            .authorizeRequests()

соответствует всем URL-адресам, ограничивает его только URL-адресами, начинающимися с /admin, с помощью antMatcher:

@Configuration
@Order(1)
public static class ProviderSecurity extends WebSecurityConfigurerAdapter{
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .antMatcher("/admin/**")
                .authorizeRequests()
                .antMatchers("/admin/login").permitAll()
                .antMatchers("/admin/**").access("hasRole('BASE_USER')")
                .and()

                ...
6
задан Peter Mortensen 22 May 2017 в 19:34
поделиться

5 ответов

% [ширина]. [точность]

Ширина должна включать десятичную точку.

%8.2 средств 8 широких символов; 5 цифр перед точкой и 2 после. Один символ резервируется для точки.

5 + 1 + 2 = 8

9
ответ дан 8 December 2019 в 12:24
поделиться

То, что Вы хотите, является модификатором:

sprintf(S, "%.10f", val);

у человека sprintf будет намного больше деталей о спецификаторах формата.

7
ответ дан 8 December 2019 в 12:24
поделиться

%f для значений плавающих.

Попытайтесь использовать %lf вместо этого. Это разработано для, удваивается (который раньше назывался долгими плаваниями).

удвойте x = 3.14159265;
printf ("15.10lf\n", x);

1
ответ дан 8 December 2019 в 12:24
поделиться

Заботьтесь - вывод sprintf будет варьироваться через локаль C. Это может или не может быть тем, что Вы хотите. См. LC_NUMERIC в документах/страницах справочника локали.

1
ответ дан 8 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

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