Когда использовать Фиксированную точку в эти дни

Шаг 1: Измените файл package.json, чтобы включить lodash в зависимости.

  "dependencies": {
"@angular/common":  "2.0.0-rc.1",
"@angular/compiler":  "2.0.0-rc.1",
"@angular/core":  "2.0.0-rc.1",
"@angular/http":  "2.0.0-rc.1",
"@angular/platform-browser":  "2.0.0-rc.1",
"@angular/platform-browser-dynamic":  "2.0.0-rc.1",
"@angular/router":  "2.0.0-rc.1",
"@angular/router-deprecated":  "2.0.0-rc.1",
"@angular/upgrade":  "2.0.0-rc.1",
"systemjs": "0.19.27",
"es6-shim": "^0.35.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"lodash":"^4.12.0",
"angular2-in-memory-web-api": "0.0.7",
"bootstrap": "^3.3.6"  }

Шаг 2: Я использую загрузчик модуля SystemJs в своем приложении angular2. Поэтому я бы модифицировал файл systemjs.config.js для отображения lodash.

(function(global) {

// map tells the System loader where to look for things
var map = {
    'app':                        'app', // 'dist',
    'rxjs':                       'node_modules/rxjs',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    '@angular':                   'node_modules/@angular',
    'lodash':                    'node_modules/lodash'
};

// packages tells the System loader how to load when no filename and/or no extension
var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { defaultExtension: 'js' },
    'lodash':                    {main:'index.js', defaultExtension:'js'}
};

var packageNames = [
    '@angular/common',
    '@angular/compiler',
    '@angular/core',
    '@angular/http',
    '@angular/platform-browser',
    '@angular/platform-browser-dynamic',
    '@angular/router',
    '@angular/router-deprecated',
    '@angular/testing',
    '@angular/upgrade',
];

// add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
packageNames.forEach(function(pkgName) {
    packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
});

var config = {
    map: map,
    packages: packages
}

// filterSystemConfig - index.html's chance to modify config before we register it.
if (global.filterSystemConfig) { global.filterSystemConfig(config); }

System.config(config);})(this);

Шаг 3: Теперь сделайте npm install

. Шаг 4: Чтобы использовать lodash в вашем файле.

import * as _ from 'lodash';
let firstIndexOfElement=_.findIndex(array,criteria);
22
задан Robert Gamble 12 November 2008 в 03:51
поделиться

6 ответов

Это все еще стоит того. Плавающая точка быстрее, чем в прошлом, но фиксированная точка также. И зафиксированный все еще единственный способ пойти, если Вы заботитесь о точности, кроме того гарантируемой IEEE 754.

18
ответ дан John Millikin 29 November 2019 в 04:00
поделиться

В ситуациях, где Вы имеете дело с очень большими объемами данных, фиксированная точка может быть дважды как эффективная память, например, четырехбайтовое длинное целое в противоположность восьми байтам дважды. Техника, часто используемая в больших геопространственных наборах данных, должна уменьшить все данные до общего источника, такого, что от старших значащих битов можно избавиться, и работа с целыми числами фиксированной точки для остальных. Плавающая точка только важна, если точка действительно на самом деле плавает, т.е. Вы имеете дело с очень широким спектром чисел в очень высокой точности.

17
ответ дан SmacL 29 November 2019 в 04:00
поделиться

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

11
ответ дан ddimitrov 29 November 2019 в 04:00
поделиться

Его почти ВСЕГДА быстрее для использования фиксированной точки (опыт x86, Pentium, 68k и ARM). Это может, тем не менее, также зависеть от типа приложения. Для программирования графики (одно из моего основного использования фиксированной точки) я был в состоянии оптимизировать код с помощью предварительно созданных таблиц косинуса, таблицы журнала и т.д., Но также и основные математические операции также оказались быстрее.

А комментируют финансовое программное обеспечение. Было сказано в более раннем ответе, что фиксированная точка полезна для финансовых вычислений. В моем собственном опыте (разработка большой системы управления финансами и обширный опыт обработки кредитной карты) я НЕ использовал бы фиксированную точку. У Вас будут погрешности округления с помощью или или фиксированной точки с плавающей точкой. Мы всегда используем целые суммы для представления денежных сумм, считая минимальное количество возможным (1c за Евро или доллар). Это гарантирует, что никакие частичные суммы никогда не теряются. Когда выполнение сложных значений вычислений преобразовывается в, удваивается, специализированные правила округления применяются, и результаты преобразовываются назад в целые числа.

5
ответ дан Tim Ring 29 November 2019 в 04:00
поделиться

Используйте фиксированную точку, когда аппаратные средства не поддерживают с плавающей точкой, или аппаратная реализация сосет.

Также остерегаются при создании классов для него. Что-то Вы думаете, было бы быстро, мог на самом деле оказаться собакой когда дело доходит до профилирования из-за (ООН) необходимые копии классов. Это - другой вопрос в течение другого времени как бы то ни было.

4
ответ дан graham.reeds 29 November 2019 в 04:00
поделиться

Так как Вы используете ЦП общего назначения, я предложил бы не использовать фиксированную точку, если производительность не так очень важна для Вашего приложения, что необходимо считать каждый тик. Стычка реализации фиксированной точки и заниматься проблемами как переполнение просто не стоит того, когда у Вас есть ЦП, который сделает это для Вас.

, по моему скромному мнению, фиксированная точка только необходима при использовании DSP без поддержки оборудования для операций с плавающей точкой.

0
ответ дан Dima 29 November 2019 в 04:00
поделиться
Другие вопросы по тегам:

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