Hướng dẫn javascript divide by 100 - javascript chia cho 100

Tôi đang cố gắng chia 100 cho một số, vì vậy tôi nhận được tỷ lệ phần trăm của số đó để đặt một biến vào A cho ... và cho việc đặt tỷ lệ phần trăm bên trong một mảng ... ít nhiều điều này:

var number = 4
var percentage = 100 / number
var somaPercentual = new Array();
for (i = 0; i < number; i++) {
  var percentage = percentage
  somaPercentual.push(percentage)
}

console.log(somaPercentual)

Trong trường hợp này, mảng của tôi sẽ đến:

25,25,25,25

Vì vậy, tôi cần tổng hợp tất cả các giá trị mảng và cho 100! Cho đến nay rất tốt ... cơn đau đầu bắt đầu khi số sẽ được chia cho 100 là một số lẻ!

Nếu số biến bằng 3 ví dụ, mảng của tôi sẽ cho = 33,33, 33,33, 33,33, trong đó số tiền sẽ cho 99,99 .... và sau đó làm hỏng nó! Điều này luôn xảy ra khi số là lẻ.

Bất cứ ai có thể cho tôi một ánh sáng?

Hướng dẫn javascript divide by 100 - javascript chia cho 100

Andrew Bone

6,9642 Huy hiệu vàng17 Huy hiệu bạc33 Huy hiệu đồng2 gold badges17 silver badges33 bronze badges

Đã hỏi ngày 14 tháng 6 năm 2018 lúc 12:12Jun 14, 2018 at 12:12

11

Bạn có thể sử dụng Math.round() khi bạn tổng hợp các phần tử mảng. Điều này sẽ luôn cung cấp số tiền lên đến 100

function sum(number){
  var percentage = 100 / number;
  var somaPercentual = new Array();
  for (i = 0; i  sum+=item);
  console.log(Math.round(sum));
}
sum(3);
sum(4);
sum(5);
sum(6);

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 12:18Jun 14, 2018 at 12:18

Hướng dẫn javascript divide by 100 - javascript chia cho 100

Ankit Agarwalankit AgarwalAnkit Agarwal

30K5 Huy hiệu vàng37 Huy hiệu bạc59 Huy hiệu đồng5 gold badges37 silver badges59 bronze badges

Nếu bạn không bận tâm đến một trong những con số là một chút, để chọn lỗi, bạn có thể làm điều gì đó như thế này.

Khi nó đạt đến số cuối cùng, nó sẽ giải quyết những gì còn lại để tạo 100 và đẩy nó hơn là cùng một tỷ lệ phần trăm một lần nữa.

document.querySelector('button').addEventListener('click', () => {
  var number = document.querySelector('input').value;
  var percentage = 100 / number
  var somaPercentual = new Array();
  for (i = 0; i < number; i++) {
    i < number - 1 ?
      somaPercentual.push(percentage) :
      somaPercentual.push(100 - somaPercentual.reduce((a, b) => {
        return a + b
      }));
  }

  console.log(somaPercentual)
  console.log(somaPercentual.reduce((a, b) => {
    return a + b
  }))
})

Tôi hy vọng bạn tìm thấy điều này hữu ích 🙂

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 12:47Jun 14, 2018 at 12:47

Hướng dẫn javascript divide by 100 - javascript chia cho 100

Andrew Boneandrew xươngAndrew Bone

6,9642 Huy hiệu vàng17 Huy hiệu bạc33 Huy hiệu đồng2 gold badges17 silver badges33 bronze badges

1

Đã hỏi ngày 14 tháng 6 năm 2018 lúc 12:12

Bạn có thể sử dụng Math.round() khi bạn tổng hợp các phần tử mảng. Điều này sẽ luôn cung cấp số tiền lên đến 100Jun 14, 2018 at 12:19

Hướng dẫn javascript divide by 100 - javascript chia cho 100

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 12:18Rahul Rana

Ankit Agarwalankit Agarwal2 silver badges7 bronze badges

30K5 Huy hiệu vàng37 Huy hiệu bạc59 Huy hiệu đồng

console.clear();


function getPercentuals(number) {
  var roundingError = 0.0;
  var somaPercentual = new Array();
  for (i = 0; i < number; i++) {
    var percentageExact = 100 / number;
    var percentageRound = round(percentageExact);
    roundingError += percentageExact - percentageRound;
    if (roundingError > 0.01) {
      percentageRound = round(percentageRound + 0.01);
      roundingError -= 0.01;
    } else if (roundingError < -0.01) {
      percentageRound = round(percentageRound - 0.01);
      roundingError += 0.01;
    }

    somaPercentual.push(percentageRound)

  }
  return somaPercentual;
}

function round(number) {
  return Math.round(number * Math.pow(10, 2)) / Math.pow(10, 2);
}


for (num = 1; num <= 100; num++) {
  var somaPercentual = getPercentuals(num);
  var sum = 0;
  somaPercentual.forEach(item => sum += item);
  console.log(num, somaPercentual, Math.round(sum));
}

Hướng dẫn javascript divide by 100 - javascript chia cho 100

Andrew Bone

6,9642 Huy hiệu vàng17 Huy hiệu bạc33 Huy hiệu đồng2 gold badges17 silver badges33 bronze badges

Đã hỏi ngày 14 tháng 6 năm 2018 lúc 12:12Jun 14, 2018 at 12:55