Десятичные проблемы округления

В вашем корневом компоненте вы должны использовать Nav, а не NavController. Подробнее здесь: https://ionicframework.com/docs/api/navigation/NavController/#navigating-from-the-root-component

Вы не можете ввести NavController, потому что любые компоненты, которые являются контроллерами навигации, являются дочерними для корневого компонента, поэтому они недоступны для внедрения.

blockquote>

Также проверьте реализацию справочного приложения: https://github.com/ionic-team/ionic-conference-app/blob/v3/src/app/app.component.ts

5
задан Tim Cooper 25 September 2011 в 01:33
поделиться

2 ответа

Я подозреваю, что это - ошибка компилятора на самом деле.

Вот короткая, но полная программа для показа, почему я думаю что:

using System;

class Test
{
    static void Main()
    {
        decimal constant = decimal.MaxValue / 10m;
        decimal calculated = decimal.MaxValue;
        calculated /= 10m;

        Console.WriteLine (constant);
        Console.WriteLine (calculated);        
    }
}

Вывод:

7922816251426433759354395034
7922816251426433759354395033.5

Я вырою в спецификацию для наблюдения то, какие гарантии даны.

Править: В спецификации разделите 7,18 требований:

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

Это - ясно не случай здесь. Хм.

Править: Я отправил ошибку Microsoft Connect. Мы будем видеть то, что происходит с ним.

6
ответ дан 14 December 2019 в 13:50
поделиться

Я предположил бы, потому что Вы переступаете через значение максимальной точности, когда Вы делитесь на 10. http://en.wikipedia.org/wiki/Arithmetic_precision

0
ответ дан 14 December 2019 в 13:50
поделиться
Другие вопросы по тегам:

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