2017-09-08 34 views
-4

我用这个正则表达式来检查,如果输入是浮动:正则表达式来检查一个值是浮点还是双精度?

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

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

+0

您觉得如何?是什么让你这么想的? – Pshemo

+6

当你看一个字符串时,float和double之间有什么区别?你如何确定文本是否代表浮点值,双精度值或其他值? – Thomas

+0

简而言之:号码@Thomas:你可以去计算小数位数,但那是......旁边的点(͡°͜ʖ͡°) – Wep0n

回答

0

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

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

你的主要问题:你不能。有float和double值会导致相同的文本输出。究竟是什么原因,为什么你需要这个?就我个人而言,由于它的不准确性,我尽量不使用float或double。也许有一个完全不同的解决方案,你需要什么。

相关问题