Согласно диаграмме, здесь, эквивалент тип данных в Java для C # Decimal - BigDecimal.

Так ли это на самом деле? Что случилось с преамбулой "Большой"? Кажется, что в Java нет «SmallDecimal» или «LittleDecimal» (не говоря уже о «MediumSizedDecimal»).

Я должен сказать, однако, что эта диаграмма была самым ясным, что я нашел по этому поводу; другие ссылки здесь и < a href = "http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java#Advanced_numeric_types" rel = "nofollow noreferrer"> здесь и здесь были для меня такими же ясными, как река Миссисипи после сильной бури.

15
B. Clay Shannon 11 Апр 2014 в 20:10

2 ответа

Лучший ответ

Ага - это соответствующий тип.

Поскольку вы используете Java после C # - не слишком удивляйтесь, обнаружив такие мелкие нюансы, - или слишком расстраивайтесь, когда нет простого способа сделать что-то, что "легко" сделать на C #. Первое, что приходит мне в голову, это int & int? - в Java вы просто используете int и Integer.

C # имел возможность прийти после Java, поэтому многие (что я субъективно считаю) плохие решения были исправлены / упрощены. Кроме того, помогает то, что C # был разработан Андресом Хейлсбергом (который, возможно, является одним из лучших языков программирования живых дизайнеров) и регулярно «обновляется» в отличие от Java (вы, вероятно, видели все, что добавлено в C # с 2000 года - полный список)

25
nikib3ro 11 Апр 2014 в 16:15

Так ли это на самом деле?

Они похожи, но не идентичны. Чтобы быть более конкретным: версия Java может представлять все значения, которые может представлять версия C #, но обратное неверно.

Что случилось с преамбулой "Большой"?

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

Напротив, C # decimal имеет фиксированный размер; он занимает 128 бит и дает 28 знаков после запятой.

Чтобы быть более точным: оба типа дают вам числа в форме

+/- someInteger / 10 ^ someExponent

В C # someInteger - 96-битное целое число без знака, а someExponent - целое число от 0 до 28.

В Java someInteger имеет произвольный размер, а someExponent - 32-битное целое число со знаком.

29
deHaar 7 Авг 2019 в 13:20