浮点转换的正则表达式

问题描述:

我想将一个浮点数转换为C#正则表达式的字符串。浮点转换的正则表达式

我想要的是这个。

一个)如果该值是1234我想1234

B)如果该值是123.4我想123.4

c)若该值为0.1234我想0.123

d)如果值为12.0004我想12

我有这个迄今为止

{ 
    (?:\d*\.)[1-9]{0,3} 
} 

但日是不删除点d值)

我该如何正确地做到这一点?

+3

感谢名单这不是一个正则表达式 – hek2mgl 2014-09-26 13:39:41

+0

工作很清楚机器人的概括是“最大的三位小数保持”或“保持4个显著数字”。四舍五入么?但无论如何,一致认为正则表达式不是正确的工具。 – tripleee 2014-09-26 13:45:18

+0

@MMWizard寻找关于'String.Format'的信息或在C#中格式化字符串,这就是你想要的。 – 2014-09-26 13:45:58

好感谢名单为你的答复。最后它并不困难。 我用过: Math.Round(f,3).ToString(“G”);

这将float浮点数转换为3位小数,并将结果格式化为一般格式。 请参阅http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#GFormatString链接。再次

这对于一个地板功能来说的确是更多的工作。

您可以使用此模式(一个逐字字符串写入)

\A[0-9]+(?:\.[0-9]{0,2}[1-9])? 

test online

+0

我给了它一个快速测试,但它没有工作。但我今晚会在家看看它。感谢名单 – MMWizard 2014-09-26 14:29:50