※ 引述《NTUCat (台大小鲁猫~)》之铭言:
: 各位大神好
: 文组废物小妹我最近遇到一个问题
: 就是我有一大串的数字
: 它们的小数点后都很多位
: 我想知道这堆数字 个别乘以1-200以内的什么整数
: 会得到尾数最大(最趋近.99999)的数字
: 举例来说,1.107225 乘以9会是9.965025
: 我是用1除以尾数得到9
: 再用9来验证
: 看起来很接近了
: 但我再拿另一个数字1.0773来实验
: 1/0.0773=12.93多
: 1.0773x12=12.9276
: 1.0773x13=14.0多
: 到这里乍看觉得12就是答案
: 但再乱试一下就发现
: 1.0773x194=208.9962
: 更接近.9999
: 再拿0.21546来试试看
: 1/0.21546=4.64多
: 0.21546*4=0.86184
: 0.21546*5=1.0773
: 这样看起来4会是答案
: 可是
: 0.21546 乘以190是40.9374
: 乘以167是35.98182
: 这两个结果的尾数又更接近.9999
: 所以可知我用1除以尾数是作法不正确
: 但我想不到其他解法
: 不晓得这有没有可能用公式或程式解决呢?
: 感谢各位的阅读
: 因为算到头昏了
: 如果描述不清楚请见谅
: 希望不要鞭太大力
我写了一个 Apps Script 范例给你参考
https://docs.google.com/spreadsheets/d/1pmfttpMVQQWQOkuz_4sz6fXT16sX9UxOmmFrhR
yPCEE/edit?usp=drivesdk
(选择 工具-宏-点击 myFunction)
可能有更好的做法,但暴力一点的就是
例如说用 Excel
Step 1.
N = 你的数字
N x 1
N x 2
N x 3
N x ...
Step 2.
然后把结果的整数都去掉 (字串切割也行)
Step 3.
找到最大值,对应的index就是你要的整数
Result:
1.0773 的答案为 194
0.21546 的答案为 181