正则表达式检查值是浮点还是双?

时间:2017-09-08 11:24:36

标签: java regex

我使用这个正则表达式检查输入是否为float:

[+-]?([0-9]*[.])?[0-9]+

我可以使用相同的正则表达式来检查double吗?

1 个答案:

答案 0 :(得分:0)

首先,你的正则表达式并不涵盖float或double的所有文本表示形式,因为它们也是科学形式,例如1.2345E15,所以你需要相应地改变你的正则表达式。

一个简短的谷歌搜索导致this answer on StackOverflow,其中更好的正则表达式被描述为[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?(我还没有测试过它)。

对于你的主要问题:你不能。 float和double值将导致相同的文本输出。究竟是什么原因,为什么你需要这个?我个人尝试不使用浮动或双重,因为它的不准确性。也许你需要的是完全不同的解决方案。