【发布时间】:2018-08-28 20:34:25
【问题描述】:
我想以编程方式确定某个小数点后的下一个小数点。
例如,我有小数点 0.0000041
我想以编程方式在函数中生成 0.0000042。
如果我在使用 0.0000042 运行该函数后再次运行该函数,则新数字将为 0.0000043
如果我运行小数点为 0.0000049 的函数,则新数字将为 0.0000050 等等......
有没有办法做到这一点?
我不知道从哪里开始或参考什么来做这样的事情。
谢谢。
【问题讨论】:
-
在
0.0000050,相当于0.000005上运行会发生什么?算法如何知道0.0000051是“下一个”数字而不是0.000006? -
从您的问题中不清楚您遇到问题的任务的哪一部分。您尝试了哪些方法,但以何种方式没有奏效?
-
您尝试过什么,您尝试过什么失败了?理想情况下,您应该提供一个minimal reproducible example 来说明您的尝试,并包含有关它如何失败的具体信息,以及错误消息和/或错误输出。 Stack Overflow 不是代码编写服务;最好的问题是那些提供有用信息的问题,以便回答的人可以指导您设计自己的正确答案。请参阅How to Ask 一个好问题。
-
为什么?基于什么规则?除了您之外,任何人都不清楚为什么 .003 应该增加到 0.0031 而 .0000041 应该增加到 .0000042。为什么 .003 不会增加到 .004?或者,更确切地说,为什么 .0000041 不会增加到 .00000411?
-
@AndrewMorton 没有办法用
double来做到这一点,但是有一种方法可以确定decimal类型的有效小数位数:给定decimal d,则:int sigDecimalPlaces = decimal.GetBits(d)[3] >> 16 & 0xff;