diff --git a/projects/igniteui-angular/src/lib/slider/slider.component.spec.ts b/projects/igniteui-angular/src/lib/slider/slider.component.spec.ts index 013f5d6baca..fd4a579f6b3 100644 --- a/projects/igniteui-angular/src/lib/slider/slider.component.spec.ts +++ b/projects/igniteui-angular/src/lib/slider/slider.component.spec.ts @@ -637,6 +637,22 @@ describe('IgxSlider', () => { expect(slider.value.upper).toBe(60); }); + it('should reach max value with upper thumb in RANGE mode with decimal steps', () => { + slider.minValue = 0; + slider.maxValue = 10; + slider.step = 0.1; + slider.type = IgxSliderType.RANGE; + slider.value = { lower: 0, upper: 10 }; + fixture.detectChanges(); + + const toThumb = fixture.nativeElement.querySelector(THUMB_TO_CLASS); + toThumb.focus(); + + UIInteractions.triggerKeyDownEvtUponElem('ArrowRight', toThumb, true); + fixture.detectChanges(); + + expect((slider.value as IRangeSliderValue).upper).toBe(10); + }); }); describe('Slider - List View', () => { diff --git a/projects/igniteui-angular/src/lib/slider/slider.component.ts b/projects/igniteui-angular/src/lib/slider/slider.component.ts index 5d6913844ab..12ae07ac56c 100644 --- a/projects/igniteui-angular/src/lib/slider/slider.component.ts +++ b/projects/igniteui-angular/src/lib/slider/slider.component.ts @@ -1354,11 +1354,11 @@ export class IgxSliderComponent implements private normalizeByStep(value: IRangeSliderValue | number) { if (this.isRange) { this._value = { - lower: (value as IRangeSliderValue).lower - ((value as IRangeSliderValue).lower % this.step), - upper: (value as IRangeSliderValue).upper - ((value as IRangeSliderValue).upper % this.step) + lower: Math.floor((value as IRangeSliderValue).lower / this.step) * this.step, + upper: Math.floor((value as IRangeSliderValue).upper / this.step) * this.step }; } else { - this._value = (value as number) - ((value as number) % this.step); + this._value = Math.floor((value as number) / this.step) * this.step; } }