Как я могу округлить число в JavaScript? .toFixed () возвращает строку?

Добавлены специфические значения webkit, отсутствующие выше

white-space: -moz-pre-wrap; /* Firefox */
white-space: -o-pre-wrap; /* Opera */
white-space: pre-wrap; /* Chrome */
word-wrap: break-word; /* IE */
140
задан Cheeso 14 January 2017 в 00:07
поделиться

4 ответа

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

Это проблема объема. Каждый экземпляр потока имеет свой собственный флаг членов, и они полностью отличаются друг от друга. При назначении нового значения в одном потоке другой поток не может его видеть.

Чтобы выполнить эту работу по назначению, создайте изменяемую логическую обертку ( AtomicBoolean будет выполнять эту задачу, хотя вы не будете использовать ее свойства параллелизма в этом приложении) и передайте эту обертку каждому потоку. Каждый поток будет мутировать этот отдельный объект, а не присваивать новый объект собственной переменной.

-121--3909636-

Да, Android SDK поставляется с эмулятором для тестирования приложений на ПК.

Программы компилируются в исполняемый байт-код Dalvik, а не в байт-код Java. Для получения дополнительной информации см. http://en.wikipedia.org/wiki/Dalvik_virtual_machine .

-121--3941956-

Возвращает последовательность, поскольку 0.1 и ее степени (используемые для отображения десятичных дробей) не могут быть представлены (по крайней мере, не с полной точностью) в двоичных системах с плавающей запятой.

Например, 0,1 действительно 0,1000000000000000055511151231257827021181583404541015625, а 0,01 действительно 0,01000000000000000020816681711721685132943093776702880859375. (Благодаря BigDecimal для подтверждения моей точки.: -P)

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

114
ответ дан 23 November 2019 в 22:07
поделиться

Потому что его основное назначение - отображение чисел? Если вы хотите округлить числа, используйте Math.round () с соответствующими множителями.

2
ответ дан 23 November 2019 в 22:07
поделиться

Гораздо лучше просто хранить функцию, так как это первоклассные объекты в питоне.

import mypackage

myfunc = mypackage.mymodule.myfunction
myfunc(parameter1, parameter2)

Но если вы должны импортировать пакет динамически, то вы можете достичь этого с помощью:

mypackage = __import__('mypackage')
mymodule = getattr(mypackage, 'mymodule')
myfunction = getattr(mymodule, 'myfunction')

myfunction(parameter1, parameter2)

Имейте в виду, однако, что вся эта работа относится к тому объему, в котором вы сейчас находитесь. Если вы не сохраняете их каким-то образом, вы не можете рассчитывать на то, что они останутся, если вы покинете локальную область.

-121--904541-

Во-первых, нет смысла говорить «реализовать в других интерфейсах», потому что интерфейсы не могут реализовать ничего.

Я вижу два ошибочных способа сделать это, вроде как.

  1. Создание анимированных и неанимированных абстрактных классов, реализующих IAnimation. Конкретный класс под ними все еще может принудительно переопределить ваши методы IAnimation с помощью нового оператора:

     класс SomeAnim: Animated
    {
    public new void Foo () {}
    }
    
  2. Используйте миксины. Сохраняйте IAnimated и INonAnimated в качестве интерфейсов, но не помещайте в интерфейс никаких методов. Вместо этого определите методы расширения следующим образом:

     статический класс Ext
    {
    публичная статическая пустота Foo (этот IAnim anim)
    {
    если (аним IAnimated )//сделать что-то
    в противном случае, если (anim является INonAnimated )//сделать что-то другое
    }
    }
    

снова, немного взлом. Но то, что вы пытаетесь сделать, указывает на недостатки дизайна.

-121--2394871-

Конечно, возвращает последовательность. Если вы хотите округлить числовую переменную, используйте Math.round (). Точка toFixed состоит в форматировании числа с фиксированным числом десятичных разрядов для дисплея пользователю .

12
ответ дан 23 November 2019 в 22:07
поделиться

Что вы ожидаете от него, когда он должен отформатировать число? Если у вас есть число, вы не можете практически ничего с ним сделать, потому что, например, 2 == 2.0 == 2.00 и т.д., поэтому оно должно быть строкой.

3
ответ дан 23 November 2019 в 22:07
поделиться
Другие вопросы по тегам:

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