Redian新闻
>
adbe drop 5% today
avatar
adbe drop 5% today# Stock
i*d
1
给定一个很大很大的数(string)和一个除数(int),给这个大数做除法,返回的结果是
double类型。我的想法是从第一个数字开始读,不够除的话就继续读下一位,然后把余
数加给后面,读完的话就加小数点,余数*10继续运算。但是想不明白怎么去判断结果
已经超过double的精度?要是这个是除不尽的话,在什么情况下终止计算?
avatar
s*y
2
头两天趁娃他爹不在家的时候我train了,本来已经初见成效,第二天明显比第一天嚎得轻
了,可惜第三天第四天娃他爹在家,他不停的在那里叨叨:"哭了这么久了,是不是有问题啊
." "我就去看一眼,马上就出来." "我去把奶嘴给他吧,给他他就好了."......
第三天的时候我还扛住了,厉声喝止不让娃他爹进去。结果第四天还是没扛住他的唠叨
,心软了,让他进去陪了。这一陪就越陪越心软。然后半夜的时候,娃醒了哭两声本来
最多拍几下就好,结果我不该一时偷懒,指使娃爹去拍。他胡乱拍了几下,把娃一把捞
起来送到我身边,陪着笑说:“小宝是真的饿了耶。”……
看来下次再train一定不要忽略了要先train儿子他爹啊!
avatar
c*m
3
what news? just because of japan? I think this is a buy.
avatar
y*u
4
java biginteger?
avatar
s*e
5
严母慈父,我娘家就是这样滴,呵呵
avatar
b*r
6
昨天盘后不是还大涨,早上起来解读又变了。。
avatar
i*d
7

可以assume是吧。爱你

【在 y**********u 的大作中提到】
: java biginteger?
avatar
b*e
8
我娃儿他爹也是这样。所以我们家每天晚上他爹哄娃睡觉。
avatar
B*r
9
Assuming the result is within the double range. Then, there's no need to
consider double precision. You handle it as if doing the integer division to
get quotient and reminder. and the reminder divided by deviser can be done
using "/" operator. so assign quotient+(reminder/deviser) to a double, you
are done. Of course, you want to be sure your quotient is within the range
of double.
If the result is guaranteed within the double range, you have to check as
you do long division and error out as soon as you result is beyond double
range.

【在 i*****d 的大作中提到】
: 给定一个很大很大的数(string)和一个除数(int),给这个大数做除法,返回的结果是
: double类型。我的想法是从第一个数字开始读,不够除的话就继续读下一位,然后把余
: 数加给后面,读完的话就加小数点,余数*10继续运算。但是想不明白怎么去判断结果
: 已经超过double的精度?要是这个是除不尽的话,在什么情况下终止计算?

avatar
z*n
10
double 精度是16位有效数字,算出来16位有效数字了就可以了。
或者保险点,多算几位,转double,肯定够了。
面试不可能考察这个点吧。你能把你说的那部分做出来应该就过了。
还有一个实在没办法的办法(假设不知道你的语言里double到底精度多少,也查不到)。
就是把你每轮结果都转一个double出来,然后比较相邻两轮的double结果是否有变化。
如果没变化说明你继续往下算不会影响最终的double了,可以终止循环。
avatar
z*n
11

to
done
这位的没看懂,如果您的“deviser”不在double 范围内,你reminder/“deviser”
如何用"/" operator呢?不还得继续用string做?那不和lz说的本质一样?但你依然需
要考虑何时终止循环,也就是double精度的问题?我理解错了吗?

【在 B********r 的大作中提到】
: Assuming the result is within the double range. Then, there's no need to
: consider double precision. You handle it as if doing the integer division to
: get quotient and reminder. and the reminder divided by deviser can be done
: using "/" operator. so assign quotient+(reminder/deviser) to a double, you
: are done. Of course, you want to be sure your quotient is within the range
: of double.
: If the result is guaranteed within the double range, you have to check as
: you do long division and error out as soon as you result is beyond double
: range.

avatar
y*u
12
还是精肛兄厉害,有日子没来了,thanksgiving出去哈皮了吧
吼吼吼

)。

【在 z*********n 的大作中提到】
: double 精度是16位有效数字,算出来16位有效数字了就可以了。
: 或者保险点,多算几位,转double,肯定够了。
: 面试不可能考察这个点吧。你能把你说的那部分做出来应该就过了。
: 还有一个实在没办法的办法(假设不知道你的语言里double到底精度多少,也查不到)。
: 就是把你每轮结果都转一个double出来,然后比较相邻两轮的double结果是否有变化。
: 如果没变化说明你继续往下算不会影响最终的double了,可以终止循环。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。