|
|
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
Доброго дня господа Имею продолжение вопроса по прим. типам Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Результат 5080.58 250.43 5331.0103 - откуда .........03 ? Ответ Оттуда же - откуда и Double ? (ранее писалось) Верно понимаю ? или можно пояснить разумно Заранее благодарен ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 18:10 |
|
||
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
HOME_XОттуда же - откуда и Double ? (ранее писалось) Верно понимаю ? или можно пояснить разумно Да. У любого числа с плавающий точкой есть эта проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 18:32 |
|
||
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
Код: java 1. В консоли будет написано далеко не 0.3. =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 18:33 |
|
||
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
чтобы проверить, можно ли точно представить число, нужно перевести ее в дробь: 0.3 = 3/10 0.5 = 5/10 = 1/2 если знаменатель дроби = 2^n, то число представляется точно (при достаточном кол-ве бит), если нет - то нет. 0.3 точным не будет, а 0.5 будет. в вашем случае: 5080.58+ 250.43 = 5331.01 = 5331 + 1/100 = 533101/100 100 не является степень двойки, значит такое число не сохраниiь точно в ieee-754 если что, можно степень двойки проверять так: x&(x-1)==0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 19:42 |
|
||
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
chabapok, Буду бороться ....... P.S. Какие-то нелепости на пустом месте неужели разработчикам Java системный тип откалибровать сложно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 22:45 |
|
||
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
HOME_X, а зачем? есть бигдецимал :) да и откалибровать там не выйдет по ходу это тип такой. специальный. он для другого создан а вы всё пытаетесь его к бухгалтерии приладить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2016, 23:10 |
|
||
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
HOME_X, Гляньте еще strictfp. Хотя в вашем случае, скорей всего не поможет. Ну и BigDecimal еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2016, 23:40 |
|
||
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
Такие числа как 0.3 физически нельзя записать в ячейку, потому что это бесконечное число. Компилятор в последний бит записывает 0 или 1, т.е. обрезает его или прибавляет немного. Вот и получается остаток ...00000003 или ...99999998 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2016, 09:41 |
|
||
|
Типы Float и Double - близнецы - братья ?
|
|||
|---|---|---|---|
|
#18+
HOME_XБуду бороться ....... P.S. Какие-то нелепости на пустом месте неужели разработчикам Java системный тип откалибровать сложно Это у вас проблема на пустом месте. Не мучайте голову. Займитесь чем-нибудь другим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2016, 10:01 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39307162&tid=2123733]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 397ms |

| 0 / 0 |
