Avoid character slowing down when moving diagonally

When receiving input you can determine if left/right or up/down is pressed, correct? If you know the normal movement units are 300 but you need to move 353 why not just adjust the movement speed when both inputs are detected and reset it when they are not?

EG: MovementSpeed = MovementSpeed_Normal * (353/300)

Would this not work?