- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
public class BigDecimal extends Number implements Comparable<BigDecimal> {
...
public double doubleValue(){
if (scale == 0 && intCompact != INFLATED)
return (double)intCompact;
// Somewhat inefficient, but guaranteed to work.
return Double.parseDouble(this.toString());
}
}
bormand 25.09.2015 17:22 # +1
P.S. Или это в стандартной либе так и есть?
stokito 25.09.2015 17:25 # +2
bormand 25.09.2015 17:25 # 0
bormand 25.09.2015 17:29 # +2
stokito 25.09.2015 17:51 # +2
Там ещё много приколов есть
http://thomas-eichberger.blogspot.com/2011/12/some-hints-for-calculations-with.html
3.14159265 25.09.2015 19:17 # 0
> Be aware that 0.1 is an infinite decimal number, 0.5 is not, so new BigDecimal(0.5) is fine, but not new BigDecimal(0.1). And if you do not want to think about the difference every time, do not use new BigDecimal(...) at all.
И тут они поняли насколько не хватает рациональных, чтобы представить бесконечные периодические дроби. Или еще не поняли:?
stokito 25.09.2015 19:27 # 0
https://stokito.wordpress.com/2014/01/05/%D0%BA%D0%BE%D1%80%D0%BE%D0%B7%D0%B8%D1% 8F-%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1% 82%D0%B8/
3_14dar 25.09.2015 19:49 # 0
Her 25.09.2015 18:45 # +1
так вот откуда это пошло
stokito 25.09.2015 19:00 # 0
Кстати в 8ой JDK ещё немного подтюнили http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/math/BigDecimal.java#BigDecimal.doubleValue%2 8%29
А вот тут тоже чуваки удивляются этому говнокоду https://stackoverflow.com/questions/14739823/improve-performance-on-bigdecimal-to-double-conversion там даже патчи какие-то есть
Кстати попутно интересную тему нашёл http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/
но это уже оффтоп
3.14159265 25.09.2015 19:20 # +1
В первую очередь алгоритмической. Вон в 7ой жабе наконец-то приличную сортировку массивов сделали по заветам дедушки Кнута. В 8ой наконец worst case по хэш-мапе починили.
Может когда-нибудь дело до строк и буферов дойдёт, и мы увидим хотя бы КМП.
stokito 25.09.2015 19:29 # 0
А что это, не в курсе.
По поводу строк то там Шипилёв кажись на конфе говорил что они в этом направлении сейчас активно работают. Проанализировали кейсы использования и у них их оказалось ограниченное число, так что они сделают какие-то там оптимизации. Не вникал ещё в тему.
3.14159265 25.09.2015 19:34 # +5
Ну думал раз завсегдатаи в курсе, то и старожилы тоже. Суть в том что стандартный indexOf фейлит в сложности когда надо в "aaaaaaaaaaaaaaaaaa....a" искать "aaaaaaaaaaaaab"