@@ -2,7 +2,7 @@ import * as React from 'react';
22import classNames from 'classnames' ;
33import KeyCode from 'rc-util/lib/KeyCode' ;
44import { composeRef } from 'rc-util/lib/ref' ;
5- import getMiniDecimal , { DecimalClass , ValueType } from './utils/MiniDecimal' ;
5+ import getMiniDecimal , { DecimalClass , toFixed , ValueType } from './utils/MiniDecimal' ;
66import StepHandler from './StepHandler' ;
77import { getNumberPrecision , num2str , trimNumber , validateNumber } from './utils/numberUtil' ;
88import useCursor from './hooks/useCursor' ;
@@ -181,23 +181,7 @@ const InputNumber = React.forwardRef(
181181 // Separator
182182 const separatorStr = decimalSeparator || '.' ;
183183
184- // Precision
185- const { negativeStr, integerStr, decimalStr } = trimNumber ( str ) ;
186- let precisionDecimalStr = `${ separatorStr } ${ decimalStr } ` ;
187-
188- if ( mergedPrecision >= 0 ) {
189- precisionDecimalStr =
190- mergedPrecision > 0
191- ? `${ separatorStr } ${ decimalStr
192- . padEnd ( mergedPrecision , '0' )
193- . slice ( 0 , mergedPrecision ) } `
194- : '' ;
195- } else if ( precisionDecimalStr === '.0' ) {
196- // Remove unnecessary `.0` of number
197- precisionDecimalStr = '' ;
198- }
199-
200- str = `${ negativeStr } ${ integerStr } ${ precisionDecimalStr } ` ;
184+ str = toFixed ( str , separatorStr , mergedPrecision ) ;
201185 }
202186
203187 return str ;
@@ -292,12 +276,7 @@ const InputNumber = React.forwardRef(
292276 const numStr = updateValue . toString ( ) ;
293277 const mergedPrecision = getPrecision ( numStr , userTyping ) ;
294278 if ( mergedPrecision ) {
295- const { negativeStr, integerStr, decimalStr } = trimNumber ( numStr ) ;
296- updateValue = getMiniDecimal (
297- `${ negativeStr } ${ integerStr } .${ decimalStr
298- . padEnd ( mergedPrecision , '0' )
299- . slice ( 0 , mergedPrecision ) } 0`,
300- ) ;
279+ updateValue = getMiniDecimal ( toFixed ( numStr , '.' , mergedPrecision ) ) ;
301280 }
302281
303282 // Trigger event
0 commit comments