@@ -12,8 +12,13 @@ public class FloatArgument : Argument
1212{
1313 private readonly float ? _minValue ;
1414 private readonly float ? _maxValue ;
15+ private readonly bool _preferPercent ;
1516
16- public FloatArgument ( string name , float ? minValue = null , float ? maxValue = null ) : base ( name )
17+ public FloatArgument (
18+ string name ,
19+ float ? minValue = null ,
20+ float ? maxValue = null ,
21+ bool preferPercent = false ) : base ( name )
1722 {
1823 if ( minValue . HasValue && maxValue . HasValue && minValue . Value > maxValue . Value )
1924 {
@@ -23,30 +28,37 @@ public FloatArgument(string name, float? minValue = null, float? maxValue = null
2328
2429 _minValue = minValue ;
2530 _maxValue = maxValue ;
31+ _preferPercent = preferPercent ;
2632 }
2733
34+ private string FormatNum ( double number )
35+ {
36+ if ( ! _preferPercent ) return number . ToString ( ) ;
37+ return $ "{ number * 100 } %";
38+ }
39+
2840 public override string InputDescription
2941 {
3042 get
3143 {
3244 if ( _minValue . HasValue && _maxValue . HasValue )
3345 {
34- return $ "A number which is at least { _minValue } and most { _maxValue } e.g. " +
35- $ "{ Math . Round ( ( double ) new Random ( ) . Next ( ( int ) _minValue . Value , ( int ) _maxValue . Value + 1 ) ) } ";
46+ return $ "A number which is at least { FormatNum ( _minValue . Value ) } and most { FormatNum ( _maxValue . Value ) } e.g. " +
47+ $ "{ FormatNum ( Math . Round ( ( double ) new Random ( ) . Next ( ( int ) _minValue . Value , ( int ) _maxValue . Value + 1 ) ) ) } ";
3648 }
3749
3850 if ( _minValue . HasValue )
3951 {
40- return $ "A number which is at least { _minValue } e.g. { _minValue + 2f } ";
52+ return $ "A number which is at least { FormatNum ( _minValue . Value ) } e.g. { FormatNum ( _minValue . Value + 2f ) } ";
4153 }
4254
4355 // ReSharper disable once ConvertIfStatementToReturnStatement
4456 if ( _maxValue . HasValue )
4557 {
46- return $ "A number which is at most { _maxValue } e.g. { _minValue + 2f } ";
58+ return $ "A number which is at most { FormatNum ( _maxValue . Value ) } e.g. { FormatNum ( _minValue . Value + 2f ) } ";
4759 }
4860
49- return "Any number e.g. 2.5 " ;
61+ return $ "Any number e.g. { FormatNum ( 1.5 ) } ";
5062 }
5163 }
5264
0 commit comments