以下是引用beyondyf在2011-11-1 21:29:52的发言:
呵呵,不想等等了?如果公布代码后证明我是对的,那一百分可不给你了
呵呵,不想等等了?如果公布代码后证明我是对的,那一百分可不给你了
你不会用的java的BigFloat库吧。。
import java.math.BigDecimal; import java.math.MathContext; public class Precision1000 { public static void main(String[] args) { MathContext mc = new MathContext(1001); // 舍入1001位 BigDecimal result = new BigDecimal(0); for (int i = 1; i <= 100; i++) result = result.add(new BigDecimal(1).divide(new BigDecimal(i), mc)); System.out.println(result.toPlainString().substring(0, 1002)); // 丢弃1001位 } } /* 5.187377517639620260805117675658253157908972126708451653176533956587219557532550 49660568776892312041355295137290008095948576433490200385925128454747939960648867 77193564377010343514175016280036121338139363403361039717025815038560922976092577 58524902420157864541234138336609189870602759072535045125829488075278667395903947 14709377905509971663909084580816222756304901297019081913723833776150679344482592 19985786828216280140988475651174867766685160764730429716983310052063466701008405 66363074064667043672082797505032907864094557995222317246199815257870210681807328 11917231710322781636152457433089569808211078679420445116932890041005794056516333 43522443887668631573238182504012771312465501648793489552995730480404107367397837 27083287179928615106959660501145265658411572959372901925824344377263363761945330 17905075097606740175205276891748232922334187250177881689092871712673549165589217 45707088410531106593688725273226015028075651958650447536359057203445963608859343 613614107827432299636252554316432574546812 */看来beyondyf是对的,除非Java类库算法有误。