Mysql 有没有办法找到Excel中最大的小数位数

Mysql 有没有办法找到Excel中最大的小数位数,mysql,excel,optimization,Mysql,Excel,Optimization,我有一张Excel表格,里面有很多小数点后的数字。我试图在MySQL中创建一个表来尽可能高效地存储这些数据,但我需要知道每列中小数位数的最大值。有没有一个函数我可以用来解决这个问题 我的数据集如下所示: Item | Val 1 | Val 2 | Val 3 =====|=======|=======|======= 1 | x.xxx | x.xx | xx.xx ... | x.xx | x.x | xx.xxx n | xx.x | x.xx | xx.xx

我有一张Excel表格,里面有很多小数点后的数字。我试图在MySQL中创建一个表来尽可能高效地存储这些数据,但我需要知道每列中小数位数的最大值。有没有一个函数我可以用来解决这个问题

我的数据集如下所示:

Item | Val 1 | Val 2 | Val 3
=====|=======|=======|=======
1    | x.xxx | x.xx  | xx.xx
...  | x.xx  | x.x   | xx.xxx
n    | xx.x  | x.xx  | xx.xx

例如,在Val 1列中,小数点的最大位数为3。但是,考虑到完整数据集的巨大规模,我很难手动遍历每一列并计算小数点后的最大位数。

如果您使用VBA、VB.NET或类似工具,您可以使用字符串函数来计算“.”或“,”之后的字符。

我不确定实际使用的excel函数,但我的做法是,把所有的东西都换掉,包括分离器,什么都不换,然后拿走剩下的斯特伦

我会在“计数器表”中这样做,并为链接的“数据集表”中的每个单元格制作一个公式

在计数器工作表中每列的末尾,我将显示最大值,在该行的末尾,我将显示各列的最大值

如果我用excel来做的话,就是这样。如果数据集看起来与您描述的完全一样,那么使用python之类的脚本语言会更容易


然而,首先,看看你是否需要在mysql中做到如此高效——过早的优化可能会消耗大量人力。

可能会对你有所帮助。这是一个excel公式

=MAX(LEN(MID(B2:B5,SEARCH(".",B2:B5)+1,LEN(B2:B5)-SEARCH(".",B2:B5))))
按Ctrl+Shift+Enter键,因为这是一个数组公式


fwiw,我建议使用基于字符串的函数;也许是分开的或是分开的。任何基于数字的比较都有可能超出a的范围,在这种情况下,您可以跳过整个过程,最大值只有15。您不需要在MySQL中指定精度和比例,并且在Excel中有一个物理限制(我认为)15位小数。MySQL接收的值是否是存储在Excel单元格中的值,还是显示的值?如果是前者,则为15;如果是后者,则编写一个UDF,查看.Text属性,并使用字符串函数确定。除非数据表示货币,否则只需使用MySQL的
DOUBLE
。它给出了大约16个有效小数,几乎无限缩放,占用8个字节。我想他是在寻找“小数位数”,而不是“有效位数”。这个公式对我不适用,因为我也有0个小数的值。。。